PHÀN THỰC NGHIỆM VÀ CÁC KẾT QUẢ
2.3.2. PHẦN THỰC NGHIỆM
Chip CPLD được lựa chọn để tiến hành thực nghiệm là loại XC9536P] của công
ty Xilinx VƠI 44 chan, tren chip tích hợp 36 macroccll với 800 công sử dụng được
Theo thiet ke truyen thông thì hệ thông đo trên đầy sẽ bao gồm 5 cảm biến nhiệt một cảm biến độ ẩm, các mạch chuẩn tín hiệu từ cảm biến, các bộ biến đổi tương tự-số để chuyển tín hiệu vào một vi xử lý, cuối cùng là các khối giải mã và điều khiển để đưa ra 3 bọ hien thị LED 7 thanh. Sơ đô khôi của hệ thông có thể hình dung là rất phức tạp. Để đơn giản cho việc tích hợp trên chip, hệ thống được chia ra thành những môđun và rút gọn thành sơ đồi khối như hình 26.
Hình 26\ Sơ đồ khối của hệ thống sử dụng các chip lập trinh được.
Cảm biến nhiệt độ được sử dụng là loại NTC833 (đo -4 0 °c đến 100°C), còn cảm biến độ ẩm ỉà loại HM 1520 (của Honeywell), nghĩa là tín hiệu ờ lối ra của các cảm biến đều là tín hiệu điện áp nên phần xử lý tín hiệu sau cảm biến có cả khối khuếch đại và biến đổi tương tự số. Do vậy, chip PSoC CY8C27443 đã được lựa chọn. Côna cụ PSoC D esigner của Cypress cho phép từ các tài nguyên có sẵn thiết lập các bộ khuếch đại có hệ số khuếch đại đặt được và bộ biến đổi AD tương tự-số với độ phân giải đặt được. Do việc hiển thị nhiệt độ và độ ẩm chỉ cần đến 3 con so (digit) nên độ phản giải trong trường hợp này được đặt là 10 bit. Chip PSoC được lập trình bàng Assembly để thực hiện vai trò của một vi điều khiển, cụ thể là lần lượt đọc dừ liệu từ các cảm biến rồi xử lý và chuyển sang chip XC9536 để đưa ra hiển thị
* - ' - *W .• ■ >.-• • >*35 • ■ >.-• • >*35
• Ì E i l :
t t «
Hình 27'. Bản mạch với chip giải mã BCD sane 7 thanh.
Bẳt đầu J
Khai báo cổng vào/ra: Clk : in std logic;
Din: in std_logic_vector(3 downto 0); Dout :inout std_logic_vector(7
Để đưa ra sơ đồ đom giản này, rõ ràng là một số môđun đã được tích hợp vào trone chip CPLD. Cụ thể là:
- Bộ đếm Johnson cho khối quét động - Bộ đếm nhị phân
- Bộ giải mã BCD sang mã 7 thanh.
Để rút gọn cách trình bày, sau đây xin giới thiệu chi tiết cho một trường hợp điển hình là bộ giải mã BCD sang mã bảy thanh rồi đưa ra hiển thị trên LED. Để kiểm tra khả năng hoạt động của chip giải mã, một mạch điện như trên hình 2 đã được thử nghiệm, Lưu đồ của chương trình giải mã viết bàng VHDL được minh hoạ trên hình 3.
Ta đễ dàng nhận thấy ở phần giữa là chip Xilinx XC9536 đã được đặt cấu hình thành một bộ đếm nhị phân 4 bit và giải mã BCD sang 7 thanh.
Xung từ bộ tạo xung nhịp NE555 được đưa trực tiếp vào chân clock GCK1 (chân 5) của chip XC9536. Tần sổ xung nhịp được lựa chọn thông qua R, c của mạch tạo xung NE555 sao cho có giá trị bàng 22 Hz, đủ để kết quả hiển thị trên LED không bị nhấp nháy. Do bộ đếm nhị phân được thiết kế thành 4 bit nên kết quả hiển thị trên LED 7 thanh chạy từ 0 đến 15 rồi lại trở về 0, trong đó từ 0 đến 9 là dưới dạng chữ số còn từ 10 đến 16 là dưới dạng chữ cái: A, b, c, d, E, F.
Phương pháp tích hợp bộ giải mã BCD được m ở rộng cho các khối còn lại, cuổi cùng toàn bộ hệ thống đo lường vật lý được thu gọn như trên hình 28 (trang sau).
Sai C L K c ó thay đổi? Đúng Khởi tạo Process CASE din is WHEN "0000" => ra <= "11000000" - 0 WHEN "(MX) I" => ra <= " 1 1 1 11 (X)!" - 1 WHEN "0010" => ra <="10100100" - 2 WHEN "0011" => ra <= "101 KXXX)" - 3 WHEN "0100" => ra <= "10011001" --4 WHEN "Ol d" => ra <= "HXHOOIO" - 5 WHEN "0110" => ra <= "1(XXXX)10" WHEN "0111" = > r a <="11111000" - 7 WHEN "1000" => ra <= "KXXXXXXI” -X WHEN " 1 (X) 1" => ra <= "l(X)HXXX)" - 9 WHEN " 1010" => ra <= "lOHXXXXl" - A WHEN "1011" => ra <= "HXXXXII1" ~B WHEN "1100" => ra <= "10100111" ~ c WHEN "1101" => ra <= "lOKKXMH" -D WHEN "11 10" => ra <= " KXXXIKXl" - E WHEN "I I I ! " => ra <= "|(XX)I 1 10" - F WHEN others => null;—ra <= "1 HXXXXXI"; END CASE;