Luận văn tốt nghiệp Hệ thống báo giờ tự động Nguyên lí hoạt động tổng quát: Hệ thống báo giờ tự động là một hệ vi xử lí nên hoạt động của hệ thống là sự kết hợp chặt chẽ giữa phần cứng và phần mềm. Vi xử lí được đặt ở chế độ “auto reset” nên khi mới mở điện vi xử lí sẽ bắt đầu đọc bộ nhớ tại đòa chỉ 0000h. Đây cũng là đòa chỉ bắt đầu của chương trình hệ thống. Ngoài ra, mạch kiểm soát ngắt sẽ cấm tín hiệu Timer tác động vào ngắt NMI của Z80 nhằm mục đích tránh việc tạo thời gian thực sai dẫn đến hệ thống báo giờ sai. Về mặt phần mềm: Khi mới mở điện chương trình hệ thống sẽ khởi động mạch hiển thò (khởi tạo 8279) để mạch hiển thò sẵn sàng hiển thò dữ liệu thời gian thực từ vi xử lí gởi tới. Ngoài ra, chương trình hệ thống còn reset mạch báo chuông … Mạch bàn phím hoạt động khi chương trình con Keypro được gọi để phục vụ cho Settime, Hottime hay Skiptime. Phần “cấu tạo và nguyên tắt hoạt động của các khối mạch” sẽ giúp chúng ta hiểu rõ hơn hoạt động của Hệ Thống. Bước đầu tiên trong việc thiết kế Hệ Thống là phân bố bộ nhớ và thực hiện giải mã đòa chỉ cho các bộ phận của Hệ Thống. Luận văn tốt nghiệp Hệ thống báo giờ tự động 2.2_Bộ nhớ Hệ Thống và giải mã đòa chỉ: 2.2.1_Bộ nhớ Hệ Thống: Hệ Thống báo giờ tự động là một hệ vi xử lí nên việc phân bố bộ nhớ Hệ Thống là hết sức cần thiết. Ngoài bộ nhớ ROM, RAM Hệ Thống còn có các bộ phận: bàn phím, mạch hiển thò và mạch điều khiển báo hiệu. Các bộ phận này được xem như bộ nhớ. Bộ vi xử lí sẽ truy xuất các khối mạch này giống như truy xuất bộ nhớ (phương pháp ánh xạ bộ nhớ). Do yêu cầu hoạt động với vùng nhớ nhỏ. Hệ Thống chỉ sử dụng 20KB đầu tiên (0000h – 4FFFh) trong không gian 64KB mà Z80 quản lí. Với yêu cầu trên bộ nhớ sẽ được phân chia thành các vùng nhớ dành cho ROM, RAM, vùng nhớ dành cho mạch hiển thò, mạch báo hiệu và bàn phím. Để đơn giản, bộ nhớ Hệ Thống sẽ chia thành 5 vùng với dung lượng 4KB/vùng được phân bố như sau: 4FFFh 4000h MẠCH BÀN PHÍM 4KB 3FFFh 3000h MẠCH BÁO HIỆU 4KB 2FFFh 2000h MẠCH HIỂN THỊ 4KB 1FFFh 1800h CHƯA DÙNG 2KB 17FFh 1000h RAM 2KB 0FFFh 0000h ROM 4KB Hình 2: BẢN ĐỒ BỘ NHỚ HỆ THỐNG Vùng nhớ từ đòa chỉ 0000h đến 0FFFh dành cho IC ROM chứa phần mềm Hệ Thống và lưu trữõ các Restime. IC ROM được dùng là 2732 (4KBx8). Bảng mô tả hoạt động và sơ đồ chân chức năng như sau: Luận văn tốt nghiệp Hệ thống báo giờ tự động CHẾ ĐỘ CE OE \Vpp Vcc OUTPUT Read Stand by Program Program verify Program Inhibit V IL V IH V IL V IL V IH V IL X Vpp V IL Vpp Vcc Vcc Vcc Vcc Vcc Dout High Z Din Dout High Z Bảng 1 : BẢNG MÔ TẢ HOẠT ĐỘNG CỦA IC – ROM 2732 Hình 3: SƠ ĐỒ CHÂN CHỨC NĂNG CỦA IC-ROM 2732 Vùng nhớ từ 1000h đến 1FFFh là vùng nhớ RAM dùng để làm ngăn xếp (Stack), vùng đệm, bảng Hottime và bảng Skiptime. Với yêu cầu hiện tại, Hệ Thống chỉ sử dụng 2KB từ 1000h đến 17FFh khi có yêu cầu mở rộng 2KB còn lại sẽ được dùng đến. IC- RAM được chọn là loại RAM tónh (Static Ram) 6116 (2KBx8). IC 6116 có bảng mô tả hoạt động và sơ đồ chân chức năng như sau: Luận văn tốt nghiệp Hệ thống báo giờ tự động CHẾ ĐỘ CE OE WE DATA Không chọn Cấm xuất Đọc (Read) Ghi (Write) H L L L X H L H X H H L High Z High Z Dout Din Bảng 2 : BẢNG MÔ TẢ HOẠT ĐỘNG CỦA IC – RAM 6116 Hình 4: SƠ ĐỒ CHÂN CHỨC NĂNG CỦA RAM 6116 Vùng nhớ còn lại được dành cho các bộ phận: bàn phím, hiển thò, điều khiển báo hiệu. 2.2.2_ Mạch giải mã đòa chỉ: Nhiệm vụ mạch giải mã đòa chỉ là thực hiện hoạt động giải mã để tạo ra các tín hiệu : chọn IC nhớ ROM , RAM (CS chip select) và các tín hiệu điều khiển chọn các bộ phận bàn phím, hiển thò, điều khiển báo hiệu. Mạch giải mã đòa chỉ là một mạch giải mã từ 3 ra 8 đường sử dụng 3 đường đòa chỉ A12, A13, A14 để giải mã tạo 8 đường tín hiệu điều khiển và chọn chip. Bảng giải mã đòa chỉ chi tiết cùng các tín hiệu điều khiển như sau: Luận văn tốt nghiệp Hệ thống báo giờ tự động A 15 A 14 A 13 A 12 A 11 A 10 ……A 0 VÙNG NHỚ TÍN HIỆU CHỨC NĂNG 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 x x …… x 0 x …… x 1 x …… x x x … x x x … x x x …… x 0000h – 0FFFh 1000h - 17FFh 1800h – 1FFFh 2000h – 2FFFh 3000h - 3FFFh 4000h - 4FFFh 1CS 2CS DPL BDR KBD Chọn IC ROM Chọn IC RAM Chưa dùng Hiển thò Báo hiệu Đọc bàn phím Bảng 3 : BẢNG GIẢI MÃ ĐỊA CHỈ BỘ NHỚ. Mạch giải mã đòa chỉ dùng IC 74LS138 có 8 ngõ ra tác động mức thấp. Tín hiệu MERQ từ P tác động vào 2 ngõ vào điều kiện G2A và G2B để điều khiển việc giải mã chọn chip. Hình 5: SƠ ĐỒ CHI TIẾT MẠCH GIẢI MÃ ĐỊA CHỈ. 2.2.3_Tóm tắt: Mạch điện bộ nhớ Hệ Thống có cấu tạo như sau: Luận văn tốt nghiệp Hệ thống báo giờ tự động Hình 6: SƠ ĐỒ CHI TIẾT MẠCH BỘ NHỚ Các tín hiệu 1CS , 2CS thực hiện chọn IC ROM và IC RAM. Tín hiệu RD từ P điều khiển việc đọc dữ liệu trong ROM và RAM, tín hiệu WR cho phép P ghi dữ liệu vào RAM. Giản đồ thời gian các chu kì P đọc và ghi bộ nhớ như hình 7: Luận văn tốt nghiệp Hệ thống báo giờ tự động CLOCK A0-A15 VALID ADDRESS MERQ RD D0-D7 DATA IN WR D0-D7 DATA OUT Hình 7: CHU KÌ P ĐỌC VÀ GHI BỘ NHỚ. Hoạt động đọc, ghi bộ nhớ của P như sau: HOẠT ĐỘNG CỦA P MERQ CS RD WR Đọc bộ nhớ L L L H Ghi bộ nhớ L L H L Các bộ phận bàn phím, hiển thò và điều khiển báo hiệu thiết kế theo nguyên tắt ánh xạ bộ nhớ. Hoạt động của P truy xuất các bộ phận này như sau: HOẠT ĐỘNG CỦA P ĐỊA CHỈ MERQ TÍN HIỆU ĐIỀU KHIỂN Hiển thò 2000h – 2FFFh L DPL = L Điều khiển báo hiệu 3000h – 3FFFh L BDR = L Đọc bàn phím 4000h – 4FFFh L KBD = L Luận văn tốt nghiệp Hệ thống báo giờ tự động 2.3_ Khảo sát tính chất ngắt NMI : (NON_ MASKABLE INTERRUPT) Ngắt NMI (ngắt không thể che bằng phần mềm) của Z80 là ngắt có độ ưu tiên tuyệt đối. Khi có ngắt NMI tác động, chương trình Hệ Thống sẽ tạm dừng công việc hiện tại để thực hiện chương trình phục vụ ngắt NMI bắt đầu tại đòa chỉ 0066h. Với yêu cầu đặt ra là Hệ Thống làm việc với thời gian thực, nên đòi hỏi việc đếm thời gian phải thực hiện chính xác và được ưu tiên hàng đầu. Do đó, ngắt NMI dành cho việc đếm thời gian thực. Tuy nhiên, ngoài hoạt động đếm thời gian thực chương trình Hệ Thống còn phải thực hiện các công việc khác như: phục vụ bàn phím, phục vụ việc báo hiệu cũng như hiển thò. Ngắt NMI không được làm ảnh hưởng đến các hoạt động trên . Công việc thăm dò ngắt INT và NMI được Z80 thực hiện tại chu kì đồng hồ cuối cùng ở chu kì máy cuối cùng của một chu kì lệnh (gọi là các thời điểm to). Chu kì máy cuối Chu kì máy lệnh kế to Hình 8: GIẢN ĐỒ NHẬN NGẮT NMI Theo hình 8, nếu có tín hiệu gọi ngắt NMI (hoặc ngắt INT ) xuất hiện tại các thời điểm khác với các thời điểm to thì chương trình Hệ Thống sẽ không nhận được ngắt NMI và chương trình phục vụ ngắt để tạo thời gian thực sẽ không được thực hiện. Phần mềm Hệ Thống bao gồm nhiều loại lệnh và các lệnh này được thực hiện với số chu kì đồng hồ khác nhau. Do vậy, xung gọi ngắt NMI phải đủ rộng để việc thăm dò ngắt NMI được thực hiện một cách hoàn hảo. Nếu xung gọi ngắt NMI có độ rộng lớn hơn mức cần thiết thì điều gì xảy ra ? Qua thử nghiệm người viết nhận thấy, khi có ngắt NMI chương trình Hệ Thống tạm dừng công việc hiện tại và thực hiện chương trình phục vụ ngắt NMI , nếu tín hiệu ngắt NMI tiếp tục được giữ ở mức logic thấp thì sau khi chương trình phục vụ ngắt NMI thực hiện xong, P sẽ trở về thực hiện công việc dở dang trước khi phục vụ ngắt mà không bận tâm đến tín hiệu ngắt NMI dù lúc Luận văn tốt nghiệp Hệ thống báo giờ tự động này vẫn đang ở mức tích cực thấp. Để nhận ngắt trở lại, chân NMI của Z80 phải được kéo lên mức logic cao trước khi có tín hiệu ngắt kế tiếp. Như vậy có thể nói rằng, khi tín hiệu NMI ở mức thấp và P nhận ngắt thì việc thăm dò ngắt sẽ không được thực hiện cho đến khi tín hiệu NMI lên mức cao. Việc cho tín hiệu NMI lên mức cao trước khi có tín hiệu ngắt kế tiếp tương đương với việc khôi phục hoạt động thăm dò ngắt của P . Tóm lại, để hoạt động đếm thời gian thực không ảnh hưởng đến các hoạt động khác của Hệ Thống (trong đó có việc P nhận ngắt INT ) thì độ rộng xung gọi ngắt gọi ngắt NMI (đếm thời gian) phải được chọn thích hợp và chương trình phục vụ ngắt NMI phải không được quá dài. Đây là yêu cầu quan trọng đối với hoạt động của Hệ Thống . 2.4_Cấu tạo và nguyên tắt hoạt động các khối mạch: 2.4.1_Mạch tạo xung đồng hồ: Mạch tạo xung đồng hồ có vai trò như quả tim đập nhòp cho hoạt động của Hệ Thống. Viêäc tạo thời gian thực sẽ càng chính xác nếu tần số xung clock cấp cho P càng cao. Tuy nhiên, Hệ Thống sẽ hoạt động khó ổn đònh ở tần số cao do nhiễu xuất hiện trên đường mạch in. Do vậy, tần số xung clock được chọn sau cho giảm thiểu sai số trong việc tạo thời gian thực và tránh được nhiễu xuất hiện trên mạch in để Hệ Thống hoạt động ổn đònh. Tần số xung clock được chọn là 500KHz. Căn cứ vào tần số xung clock đã chọn và tính chất ngắt NMI của P là sẽ nhận ngắt khi phải thực hiện xong lệnh còn đang dang dở ta tính được sai số về thời gian cực đại do việc tạo thời gian thực như sau: Thời gian thực hiện lệnh dài nhất t = 23x1/fck = 23/500000 = 0.46s Sai số trong 1 phút = 60 x t = 60 x 0.46 = 27,6S Tính tương tự ta có sai số cực đại trong một năm = 365 x 24 x 60 x 60 x t = 365 x 24 x 60x 60 x27,6 = 870s Luận văn tốt nghiệp Hệ thống báo giờ tự động Sai số này là sai số max, thực tế không phải lúc nào tín hiệu gọi ngắt NMI cũng ngay vừa lúc P nhận một lệnh dài nhất nên tần số hoạt động của Hệ Thống = 500KHz là chấp nhận được. Tần số xung clock này cũng được cấp cho IC 8279 để hiển thò. Để tận dụng số lượng cổng logic trên mạch cũng như đơn giản trong thiết kế, mạch dao động được thiết kế như sau: Hình 9: SƠ ĐỒ MẠCH TẠO XUNG ĐỒNG HỒ 2.4.2_Mạch đònh thời. Mạch đònh thời có nhiệm vụ tạo ra xung nhòp tuần hoàn phục vụ cho việc đếm thời gian thực. Việc đếm thời gian thực đòi hỏi phải thực hiện một cách chính xác và ổn đònh. Do đó, mạch đònh thời phải tạo ra tín hiệu đònh thời có tần số thật chính xác và có tính ổn đònh cao. Tín hiệu đònh thời tác động vào ngắt NMI . Khi có ngắt NMI chương trình tạo thời gian thực sẽ tăng lên 1 đơn vò thời gian (1 giây). Để có được tín hiệu đònh thời tần số 1Hz có độ chính xác và tính ổn đònh cao mặc nhiên không thể sử dụng mạch dao động RC vì giá trò R,C không ổn đònh theo thời gian cũng như nhiệt độ. Có thể dùng mạch dao động thạch anh để có được tín hiệu đònh thời ổn đònh và chính xác. Tuy nhiên, giá trò thạch anh bán ngoài thò trường ít nhất cũng vài trăm KHz, cho nên phải tốn thêm mạch chia tần số thì mới có được tín hiệu đònh thời tần số 1Hz. Chính vì vậy người viết chọn mạch dao động trong đồng hồ GIMIKO, đây là mạch chuyên dùng nên đảm bảo được tính ổn đònh và chính xác của tín hiệu đònh thời. . tốt nghiệp Hệ thống báo giờ tự động Nguyên lí hoạt động tổng quát: Hệ thống báo giờ tự động là một hệ vi xử lí nên hoạt động của hệ thống là sự kết hợp chặt chẽ giữa phần cứng và phần. 2.2_Bộ nhớ Hệ Thống và giải mã đòa chỉ: 2.2.1_Bộ nhớ Hệ Thống: Hệ Thống báo giờ tự động là một hệ vi xử lí nên việc phân bố bộ nhớ Hệ Thống là hết sức cần thi t. Ngoài bộ nhớ ROM, RAM Hệ Thống. động của Hệ Thống. Bước đầu tiên trong việc thi t kế Hệ Thống là phân bố bộ nhớ và thực hiện giải mã đòa chỉ cho các bộ phận của Hệ Thống. Luận văn tốt nghiệp Hệ thống báo giờ tự động 2.2_Bộ