Đ Ạ I H Ọ C Q U Ố C GIA H À N Ộ I
TRưANG đại học công nghệ
BÁO CÁO TỔNG KẾT
Đ ê t à i :
N G H IÊ N CỨU THIỄT K c 'v n TÍCH H Ơ P CÁC
•
CHIP CHUVCN DUNG viio Hễ THỐNG
• •
DO LƯỜNG THU THÂP D Ữ Liễu
• •
MÃ SỐ: QG 05.08
Chủ trì: PGS. TS Ngô Diên Tập
Tham gia thực hiện:
Th s Nguyễn K iêm Hùng
CN Nguyễn V ăn H iệu
CN Phan Thu Ngân
&a; hg c q u ố c gia ha nôi
TRUNG TÂM thông tin thu viền
Ĩ> T / Ĩ O Í
Hà Nội 2006
1
MỤC LỤC
Mục lục
Trang
2
Đặt vấn đề
3
Chương 1. Một sô' hiểu biết cơ bản về kỹ thuật lập trình
4
trên chip
Chương 2. Phần thực nghiệm và các kết quả
9
2.1 Tích hợp khả năng thông báo kết quả bằng giọng nói
9
cho hệ thống đo lường
2.2 Tích hợp chip chuyên dụng vào các hệ thống đo
16
nhiều màn hiển thị
2.3 Thiết kế và tích hợp các chip FPGA vào hệ thống
28
thu nhận ảnh vệ tinh khí tượng
2.4 Nghiên cứu thiết kế và tích hợp chip Xilinx CPLD
46
vào hệ thống thu nhận ảnh vệ tinh khí tượng
Kết luận
51
Danh sách các công trình đã công bố
53
Danh sách các sản phẩm đào tạo
54
Tài liệu tham khảo
55
2
ĐẶT VẤN ĐỀ
Trong những năm gần đây, các thiết bị đo lường và thu thập dữ liệu đã vượt
qua giới hạn các hình thức chỉ thị hoặc hiển thị thông thường và trở nên phong
phú về chủng loại, đa dạng về cách thể hiện kết quả như: đọc kết quả bằng giọng
nói, đọc kết quả từ xa, Trên đường phố Hà Nội có thể nghe thấy tiếng đọc kết
quả cân đo thông số liên quan đến sức khoẻ con người bằng tiếng Việt từ một
sản phẩm do Trung Quốc sản xuất. Nhưng lại có một đặc điểm đáng chú ý là cấu
tạo bên trong của các sản phẩm loại này lại không phức tạp thêm nhiều nhờ sử
dụng các linh kiện số lập trình được (PLD; Programmmable Logic Device).
Hướng nghiên cứu này phát triển ở một số nước, nhưng do đặc tính lập trình
được nên cho phép những nước nhỏ cũng có thể tiếp cận công nghệ vi mạch hiện
đại để làm ra những sản phẩm mang đặc thù của đất nước mình, tiếng nói của
dân tộc mình,
Trong xu hướng phát triển hiện nay không thể chờ nước khác làm ra những
sản phẩm thể hiện tiếng Việt trên màn hình tương tác (như trên các phương tiện
nghe nhìn ở nước ta hiện nay) hoặc đọc kết quả bằng tiếng Việt mà ta phải tự
làm được những sản phẩn loại như vậy. Đề tài này được xây dựng nhằm tiếp cận
một yêu cầu đang đặt ra đối với các sản phẩm điện tử Việt nam.
Thêm vào đó, công nghệ vi mạch truyền thống chỉ có thể thực hiện ở các
nước lớn và giàu vi kinh phí đầu tư rất tốn kém, nhưng các nước nhỏ thậm chí
nghèo vẫn có thể tiếp cận công nghệ lập trình cho vi mạch (một công nghệ
không gây ô nhiễm môi trường như công nghệ truyền thống !) để làm ra những
loạt nhỏ sản phẩm thích hợp với yêu cầu đặt ra trong từng nước.
Thiết kế và tạo ra một sô' chip FPGA/CPLD chuyên dụng (bằng phần mềm)
có khả năng tích hợp được vào các hệ thống đo lường và thu thập dữ liệu làm
tăng thêm giá trị sử dụng và lĩnh vực ứng dụng của hệ thống. Một thí dụ có thể
dễ dàng nhận thấy là các mạch đồng bộ và tách tín hiệu từ các vệ tinh khí tượng;
nếu làm từ các linh kiện rời rạc, kể cả các vi mach, sẽ rất phức tạp và tốn kém
thời gian, nhưng nếu làm được từ các chip lập trình thì mạch điện sẽ rất gọn nhẹ,
hoạt động tin cậy và thời gian chế tạo (nhân bản) sẽ rút gọn đi rất nhiều.
Những nội dung chính sẽ được trình bày trong báo cáo này bao gồm:
- Một số hiểu biết cơ bản về kỹ thuật lập trình trên chip.
- Phần thực nghiệm và một số kết quả thực hiện đã đăng ký trước.
- Tóm tắt kết quả và một số lời bàn luận.
3
Chương I
MỘT SÓ HIỂU BIẾT C ơ BẢN VÈ KỸ THUẬT
LẬP TRÌNH TRÊN CHIP
1.1 MỞ ĐẦU
Như đã nói đến ở phần đặt vấn đề, trong những năm gần đây, khả năng tích
hợp trên các chip lập trình được có xu hướng tăng lên không ngừng, từ vài chục
cổng lôgic đến vài trăm và cho đến nay đã tăng lên đến một triệu cổng, thậm chí
còn cao hơn nữa. Vì vậy các chip khả lập trình được có xu hướng đáp ứng được
những ứng dụng khá phức tạp, như:
- Xử lý tín hiệu số nâng cao.
- Xử lý ảnh,
- Các ứng dụng đa phương tiện [2], [3], [4]s và [5],
Thực tế cho thấy, cho dù các chương trình nạp vào chip có phức tạp đến đâu
thì do cấu trúc theo kiểu môđun vẫn có thể được xem như được xây dựng từ
những phần nhỏ, những bộ phận nhỏ kết nối lại. Vì vậy, việc xây dựng những
môđun số (digital) cơ bản để từ đó hình thành một thư viện sẽ tăng tính đa dụng
của vi mạch lập trình được, đồng thời rút ngắn được thời gian tính từ khi hình
thành thiết kế đến các ứng dụng cụ thể.
Trong khuôn khổ đề tài “Nghiên cứu thiết kế và tích hợp các chip chuyên
dụng vào hệ thống đo lường và thu thập dữ liệu” các chip lập trình được bao
gồm hai loại:
* Các vi điều khiển, cụ thể là vi điều khiển AVR, đã được nhà sản xuất chế
tạo sẵn thành các vi điều khiển, chỉ cần lập trình cho thích hợp với các ứng
dụng cụ thể.
4
* Các chip CPLD, khả năng lập trình làm cho ứng dụng của chip linh hoạt
hơn.
Việc lập trình cho các vi điều khiển đã được trình bày trong nhiều cuốn sách
được xuất bản trong nước, chẳng hạn [3]. Trong khi, ngôn ngữ đặc tả để lập
trình cho các CPLD vẫn còn rất ít tài liệu (trong nước) đề cập đến. Vì vậy, sau
đây xin trình bày ngắn gọn về các vi mạch lập trình được, cũng như ngôn ngữ để
lập trình cho các chip này.
1.2 NGÔN NGỮ MÔ TẢ PHẨN CỨNG HDL
1.2.1 Một số khái niệm
VHDL là một thuật ngữ được viết tắt của Very High Speed (Integrated
Curcuits) Hardware Description Language (Ngôn ngữ mô tả phần cứng mạch
tích hợp tốc độ cao). Loại ngôn ngữ đặc biệt này đã được phát triển từ giữa
những năm 80 ở Hoa kỳ. Bộ Quốc phòng và Viện IEEE (Institute of Electrical
and Electronics Engineers) đã bảo trợ cho sự phát triển của ngôn ngữ mô tả phần
cứng với mục tiêu phát triển mạch tích hợp tốc độ cao. Ngày nay VHDL đã trở
thành ngôn ngữ tiêu chuẩn công nghiệp được sử dụng để mô tả các hệ thống số.
Một loại ngôn ngữ mô tả phần cứng khác cũng được dùng rộng rãi đó là
Verilog. Cả hai đều là những ngôn ngữ mạnh, cho phép người thiết kế mô tả và
mô phỏng những hệ thống so từ đơn giản đến phức tạp. Một ngôn ngữ HDL
(Hardware Description Language) thứ ba là ABEL (Advanced Boolean Equation
Language), được thiết kế dành riêng cho các thiết bị logic khả trình (PLD-
Programmable Logic Device). ABEL không mạnh bằng hai ngôn ngữ trên và ít
được ưa chuộng trong công nghiệp
VHDL có những đặc điểm giống các ngôn ngữ lập trình quen thuộc khác
về mặt cú pháp, cấu trúc lệnh, nhưng lại có những điểm khác biệt quan trọng
về mặt thực thi lệnh. Ngôn ngữ mô tả phần cứng nói chung và VHDL nói riêng
hoạt động theo dạng song song, tức là các câu lệnh tác động đến các cổng
logic được thực thi một cách song song ngay khi có tín hiệu lối vào tác động.
Các chương trình mô tả phần cứng nói chung giống như việc bất chước thuộc
tính của một quy luật cùa hệ thống vật lý, thông thường là các hệ thống số.
5
1.2.2 Một số công nghệ phần cứng
1.2.2.1 Công nghệASIC (Application Specific Integrated Circuit)
Công nghệ mạch tích hợp chuyên dụng, đây là công nghệ thiết kế mạch
bằng một chip chuyên dụng được định hướng trước theo một hoặc một số chức
năng nào đó với cách kết nối cố định hoặc có sự kết hợp một số linh kiện và
chip với các đường kết nối cố định. Do đặc điểm này, các ASIC không có bán
trên thị trường dưới dạng vi mạch đơn lẻ như các vi mạch thông thường, cũng
không có bản thông số kỹ thuật (datasheet), mà được lắp ráp trong những thiết bị
cụ thể của một nhà sản xuất nào đấy.
1.2.2.2 Công nghệ PLD (Program m able Logic Devices)
* Một so loại linh kiện logic lập trình được
- Simple Programmable Logic Devices (SPLD): là một con chip nhỏ với các
cổng nối tiếp (dãy) hoặc một nhóm các cổng được nối với nhau để đảm
nhận một chức năng đơn giản.
- Complex Programmable Logic Devices (CPLD): có cấu trúc phức tạp hơn
SPLD, nó có thể chứa một vài khối, mỗi khối được hiểu như một SPLD.
- Field Programmable Gate Array (FPGA): có cấu trúc và hoạt động phức tạp
hơn CPLD, đồng thời có khả năng thực hiện những chức năng phức tạp.
* Các phương tiện chủ yếu dùng cho linh kiện logic lập trình được
□ Cần có PROM (Programmable Read Only Memory) trong PLD bởi nó
chứa chương trình cho PLD. Chương trình được lưu lại ngay cả khi mất
nguồn nuôi.
□ Phần mềm lập trình cho PLD.
□ Các tài liệu hướng dẫn phục vụ cho người phát triển.
□ Khả năng lập lại cấu hình cho linh kiện.
Thế hệ PLD mới, được công ty Xilinx phát triển có kết hợp hệ thống trên
chip được xem như là thế hệ FPGA. Nó được kết hợp những mạch đặc biệt cùng
với rất nhiều cổng để tạo nên những thiết bị truyền thông có chức năng đặc biệt.
* Công nghệ CPLD
6
CPLD cung cấp cho các nhà thiết kế mạch logic có dung lượng rất lớn để
thiết kế những mạch phức tạp chỉ trên một chip. CPLD có thể coi là một tập hợp
của các SPLD.
Một SPLD là một nhóm các cổng được nối liền với nhau mà chúng có thể
lập trình được để thực hiện một chức năng nào đó. Được phát triển bắt đầu từ
những năm 1970, SPLD là một phần hết sức cơ bản để thiết kế CPLD, PAL
(Programmable Array Logic), PLA (Programmable Logic Array). Nói khác đi,
CPLD chứa các khối SPLD, trong đó mồi SPLD được coi là một khối logic bao
gồm PAL hoặc PLA. Công nghệ CPLD được phát triển cho các ứng dụng như :
- Các thiết kế đom giản.
- Các thiết bị có giá thành thấp, chức năng đơn giản.
- Giảm kích thước mạch.
* Công nghệ FPGA
Một chip FPGA được thiết kế bao gồm hàng ngàn cổng logic hoặc nhiều
hơn với các kết nối có khả năng lập trình, thường áp dụng cho các chương trình
phát triển phần cứng vì có ưu điểm là hoạt động nhanh và điện áp thấp, cấu tạo
của một chip FPGA bao gồm các bộ đệm I/O, các khối logic cấu hình, thường
được viết tắt là CLB (Configurable Logic Blocks) và các cấu trúc kết nối có khả
năng lập trình. Lập trình cho các kết nối được thực hiện bàng các ô RAM mà
đầu ra cuối cùng của nó được kết nối với các cong MOS ngang qua các tranzito.
Một CLB đơn bao gồm bốn tín hiệu vào, một tín hiệu xung clock, các bộ
đa hợp lập trình được, một flip flop SR, bảng tra (LUT-Look Up Table). Bảng
LUT là bộ nhớ số dùng để cất giữ bảng chân lý của hàm so Boole. Một CLB có
rất nhiều hàm logic khác nhau dùng để sắp đặt chương trình.
Lưu đồ thiết kế cho một chip FPGA bắt đầu bằng việc mô tả hàm trạng
thái, thường dùng ngôn ngữ VHDL. cấu trúc sau đó được tổng hợp từ các lược
đồ mạch hoặc các ô logic. Ke tiếp là việc sắp đặt và chọn đường để định vị các
CLB cho phù hợp với mạng netlist. Sau đó là quá trình mô phỏng và thẩm tra
trước khi nạp chương trình vào chip.
Ưu điểm lớn nhất của thiết kế FPGA là thời gian thực hiện rất ngắn. Các
cấu trúc lôgic trên chip có thể được người sử dụng lập trình trực tiếp mà không
7
cần một công cụ chế tạo mạch tích hợp nào. Vì không có bước vật lý nên một
hàm đom giản trong một chip FPGA thông thường có thể thu được ngay khi vẽ
Mapping. Việc sản xuất chip theo kỹ thuật FPGA thường có chi phí cao hơn so
với các kỹ thuật khác, nó thường được áp dụng cho việc sản xuất chip ASIC
(Application Specific Integrated Circuit) làm việc với điện áp thấp và cho các
linh kiện cần tốc độ nhanh.
So sánh giữa các công nghệ PLD thì FPGA là một công nghệ mới được
phát triển có tiềm năng rất lớn.
1.2.3 So sánh công nghệ ASIC và PLD
Công nghệ PLD và công nghệ ASIC khác nhau ở một số điểm sau:
- ASIC cần một thời gian dài cho việc thiết kể và chế tạo, trong khi đó PLD
tạo ra chỉ nhờ vào việc nạp một phẩn mềm nên rất nhanh chóng.
- ASIC thường được thiết kế tối ưu cho một chức năng đặc biệt nên thường
có tốc độ cao hơn. Nhưng với công nghệ cao ngày càng phát triển thì PLD
vẫn có khả năng vừa cho độ linh động cao vừa có tốc độ nhanh và giá
thành rẻ.
- Với số lượng lớn (trên 5000 chip) ASIC tỏ ra kinh tế hơn, trong khi với số
lượng nhỏ, thậm chí rất nhỏ thì PLD lại thể hiện ưu điểm vượt trội.
- ASIC có giá thành thường đắt gấp nhiều lần so với công nghệ PLD.
- Tính linh động, đa dạng trong chức năng thì PLD hom hẳn ASIC.
8
C hương 2
PHÀ N T H ự C NGH IỆM VÀ CÁC KẾT QUẢ
2.1 TÍCH HỢP KHẢ NĂNG THÔNG BÁO KẾT QUẢ BẰNG
GIỌNG NÓI CHO HỆ THÓNG ĐO LƯỜNG
2.1.1 Đặt vấn đề
Châm ngôn có câu "Trăm nghe không bằng một thấy", nhưng khi giao tiếp
với các thiết bị điện tử thì trong nhiều trường hợp âm thanh lại làm cho người
dùng cảm thấy tiện lợi hơn nhiều. Có thể kể ra ở đây một vài thí dụ: Tiếng loa
báo số tầng khi đi thang máy, tiếng "bip" báo chập mạch khi đo điện trở, tiếng
"còi chit" báo nhiệt độ quá cao, tiếng "còi báo động” khi áp suất quá cao, V . V
đều làm giảm nhẹ sự căng thẳng cho người dùng so với khi phải theo dõi bằng
mắt. Trên đường phô' Hà Nội có thể nghe thấy tiếng đọc kết quả cân đo thông sô'
liên quan đến sức khoẻ con người bằng tiếng Việt từ một sản phẩm do Trung
Quốc sản xuất. Mới đây nhất là những điện thoại phát ra số gọi bằng tiếng Việt
mỗi khi người dùng nhấn phím. Âm thanh phát ra trong các thí dụ nêu trên đều
do một vi điểu khiển chỉ đạo. Vì vậy trong chương này ta sẽ xem xét có thể giao
tiếp như thế nào với một vi điều khiển để kích hoạt các chip phát ra âm thanh.
Hiện tượng này được ứng dụng trong các thiết bị cảnh báo, chống trộm, xử lý và
nhận dạng tiếng nói, đặc biệt là trong các hệ thống đo lường và điều khiển.
Theo hướng nghiên cứu này chúng tôi đã đạt được một sô kết quả, chẳng
hạn tích hợp âm thanh trong thiết bị quàn lý hàng chờ, trong thiết bị báo động
hoặc cảnh báo. Trong phần này sẽ trình bày các kết quả thực nghiệm trong việc
mờ rộng thiết kế hệ đo để tích hợp thêm một bộ phát âm số để cho phép thông
báo các kết quả đo bằng giọng nói tiếng Việt. Sau một khoảng thời gian đặt
trước hoặc khi có một phím yêu cầu đọc kết quả được bấm, các kết quả đo về độ
9
ẩm, nhiệt độ (hoặc cả áp suấto sẽ được thông báo bằng giọng nói tiếng Việt. Hệ
thống trên mang tính minh hoạ về mặt phương pháp, về nguyên tắc việc đọc kết
quả đo lường bằng giọng nói có thể được áp dụng cho các hệ thống đo các thông
số khác như: đo huyết áp, đo điện áp, các lồng ấp trẻ sơ sinh V . V
2.1.2 Xây dựng hệ thống
2.1.2.1 Môđun thu phát ăm số
Đe phát âm số có hai phương pháp:
• Viết phần mềm trên chip (chẳng hạn bằng ngôn ngữ VHDL) để tạo ra các
tiếng nói tổng hợp.
• Dùng các chip chuyên dụng để thu phát âm thanh, gọi tắt là các môđun
RPM.
Thoạt đâu, chúng tôi đi theo hướng thứ nhất và đã có kết quả công bố tại
Hội Nghị Khoa học của Khoa Công Nghệ (và đăng trên tạp chí của Đại học
Quốc Gia) vì nhận thấy ngoài phần âm thanh còn có thể tích hợp các phần khác
của hệ thống đo lường trên cùng một chip, v ề sau, chúng tôi chuyển sang cách
thứ hai vì thấy dễ đáp ứng tính đa dạng của ứng dụng hom.
Theo giải pháp thứ hai thì trong hệ thống này, phần quan trọng là một
môđun RPM được sử dụng để thu/phát âm thanh. RPM cung cấp một giải pháp
thu/phát âm thanh chất lượng cao cho các ứng dụng nhắn tin khoảng thời gian
ngắn. Sơ đồ khối của RPM được miêu tả trong hình 1.
Môđun RPM bao gồm một bộ dao động, một bộ tiền khuếch đại micro-
phôn, mạch điểu khiển khuếch đại tự động, bộ lọc chống chồng phổ, bộ lọc làm
trơn, và bộ khuếch đại loa. Một hệ thống con thu/phát âm tối thiểu có thể được
cấu hình với một micro-phôn, một loa, một vài linh kiện thụ động, hai nút bấm
và một nguồn nuôi. Việc ghi âm được lưu vào trong các ô nhớ không bay hơi,
cung cấp sự lưu trữ tin nhắn công suất zero. Giải pháp duy nhất này được thực
hiện nhờ công nghệ lưu trữ đa mức MLS. Tiếng nói và các tín hiệu âm thanh
được lưu trữ trực tiếp vào trong bộ nhớ dưới dạng tự nhiên của nó, cung cấp sự
tái tạo âm thanh trạng thái lỏng chất lượng cao.
10
Hình 1: Sơ đồ khối của môđun RPM.
RPM cung cấp một loạt các môđun thu/phát âm thanh với thời gian
thu/phát khoảng từ 20 giây đến vài phút. Với các ứng dụng không phức tạp,
chúng tôi lựa chọn môđun RPM có khoảng thu phát 20 giây. Các thông số đáng
quan tâm của môđun RPM là khả năng nhớ tin nhắn dến 100 năm và số chu
trình ghi/ xoá là 100.000.
Các đặc tính kỹ thuật chính có thể kể ra như sau:
• Nguôn nuôi đơn dầu, +5 vôn,
• Khoảng thời gian ghi: 20 giây,
• Giải pháp thu phát đơn chip dễ sử dụng,
• Sự tạo lại âm thanh tự nhiên với chất lượng cao,
• Khả năng nối tầng trực tiếp khi cần khoảng ghi dài hon,
• Chế độ tiết kiệm năng lượng tự động,
• Sự lưu tin nhẳn công suất bằng không,
• Có khả năng định địa chỉ cho tất cả các tin nhắn,
• Khả năng nhớ tin nhắn đến 100 năm,
• Chịu được 100.000 chu trình ghi,
• Bộ dao động on-chip,
• Nhiệt độ làm việc: 0 °c tới 70°c đối với các sản phẩm thương mại, -40°c
tới 85°c đối với các sản phẩm công nghiệp.
11
Hình 2 chỉ ra một sơ đồ khối cho một ứng dụng rất cơ bản của RPM. Mạch
này có ba nút nhấn: một cho ghi, một cho phát lại theo sườn và một cho phát lại
theo mức. Nút ghi âm thực hiện chính xác nhiệm vụ như tên gọi của nó: nhấn
nút này cho phép ghi lại âm thanh; nhả nút này dừng ghi âm. Nếu gặp điểm kết
thúc bộ nhớ (EOM) của chip trước khi nút được nhả, chip sẽ tự động kết thúc
việc ghi và chuyển sang chế độ giảm năng lượng. Cũng có một LED đỏ dùng để
chỉ thị việc ghi âm. LED này được bật sáng khi ghi âm. Âm thanh có thể được
ghi theo 2 cách: bằng cách sử dụng một micrô-phôn như được chỉ ra trong mạch
ví dụ phần trên, hoặc bằng cách sử dụng một tín hiệu trực tiếp từ một hệ thống
CD-stereo kết nối trực tiếp tới chân lối vào tương tự của RPM.
Có hai loại nút phát loại: kích hoạt theo sườn (PLAYE) và kích hoạt theo
mức (PLAYL). Thiết bị bắt đầu một chu trình phát lại âm khi phát hiện một
sườn chuyển mức từ mức HIGH tới mức LOW trên chân PLAYE. Việc đưa
chân PLAYE lên mức HIGH trong suốt thời gian phát lại âm thanh sẽ không kết
thúc chu trình phát lại hiện thời. Sự phát lại tiếp tục cho đến khi một dấu hiệu
EOM được phát hiện. Ngay sau khi hoàn thành chu kỳ phát lại, thiết bị tự động
giảm năng lượng và chuyển sang chế độ Standby. Chức năng phát được kích
hoạt theo mức khởi tạo một chu trình phát lại âm thanh khi tín hiệu lối vào trên
chân này được giữ ở mức thấp và sự phát lại được tiếp tục cho đến khi chân
PLAYL được kéo lên mức cao hoặc gặp dấu hiệu EOM (kết thúc bộ nhớ). Thiết
bị tự động chuyển sang chế độ giảm năng lượng ngay khi chu trình phát lại hoàn
thành.
Đầu ra loa của RPM được thiết kế để sử dụng một loa 16Q.
Bằng cách sử dụng các lối vào địa chỉ (A0-A7), hoặc các chế độ hoạt động
(bằng cách sử dụng cùng các chân nhưng với các byte trạng thái khác - chân 9
và 10 được đặt lên mức cao), nhiều đoạn âm có thể được ghi và phát lại. Phần
sau sẽ minh hoạ cách sử dụng RPM để ghi âm và phát lại nhiều đoạn âm thanh.
2.1.2.2 Hệ thống đo
Thiết kế này là sự mở rộng và phát triển hệ thống đo nhiệt độ và độ ẩm. Sơ đồ
khối hệ đo được miêu tả trong hình 2. Sơ đồ có thể tích hợp cả hai cảm biến
12
nhiệt độ (LM35) và độ ẩm (HM1500 hoặc HM1520) bằng một cảm biến chung
là HM2500 của công ty Humerel.
Hình 2: Hệ thống đo nhiệt độ, độ ẩm môi trường.
Trong ứng dụng này, chức năng đo nhiệt độ được thực hiện bởi cảm biến
HM2500, trong đó chân ra của cảm biến nhiệt độ được kết nối tới chân lối vào
ADC 1 của vi điều khiển và chức năng đo độ ẩm được thực hiện bởi lối ra cảm
biến độ ẩm kết nối tới chân ADC2 như được chỉ trên hình 2.
Cảm biến nhiệt độ và độ ẩm: Cảm biến độ ẩm được sử dụng ở đây là HM2500.
Hình 3: Càm biến độ ẩm tương đối HM2500.
13
Các đặc tính chính:
• Kích thước nhỏ,
• Không bị ảnh hưởng khi bị nước té vào,
• Có thế thay đổi mà không cần tiến hành hiệu chỉnh thêm,
• Độ tin cậy cao và có độ ổn định trong thời gian dài,
• Có thể đo độ ẩm từ 0 đến 100% RH,
• Độ ẩm được định chuẩn với độ chính xác ±2% RH ở 55% RH,
• Đo nhiệt độ bằng nhiệt trở NTC 10 kQ với lối ra trực tiếp.
• Nguồn nuôi có thể thay đổi trong dải rộng từ 3 đến 10 V.
• Cảm biến độ ẩm có độ bền cao với các chất, thời gian đáp ứng nhanh.
Giống như với bất kỳ mạch tuyến tính nào khi được nối tới các dây nối
trong môi trường có nhiều nhiễu, hiệu suất của nó có thể bị tác động một cách
bất lợi bởi các nguồn nhiễu điện từ rất mạnh, chẳng hạn như các rơle, các máy
phát sóng vô tuyến, các động cơ chổi quét, V . V . vì các dây nối của nó có thể trở
thành các ăngten thu và các lớp tiếp giáp bán dẫn bên trong của nó có thể hoạt
động như các bộ chỉnh lưu. Đe đạt được các kết quả tốt nhất trong các trường
hợp như vậy, một tụ lọc nguồn nối từ nguồn nuôi tới đất và một bộ làm nhụt RC
nối tiếp (chẳng hạn, R = 75Q, c = l|iF) từ lối ra tới đất thường được sử dụng
như được chỉ ra trong hình 2.
Một độ phân giải theo độ ẩm 0,2% RH có thể đạt được bằng cách sử dụng
một A/D 10 bit như A/D của vi điều khiển ATMega8535.
Để ứng dụng RPM vào trong hệ thống đo, nó được hiệu chỉnh để có khả
năng ghi các mẫu giọng nói theo định dạng tệp. Cho ví dụ, để thông báo nhiệt độ
đo được trong ứng dụng này, lời đọc của sổ và câu “Nhiệt độ bây giờ là”, và “độ
C” cần được ghi âm. Sau đó tổ hợp của những âm này cho phép thông báo ra các
kết quả mong muốn, chẳng hạn như: “Nhiệt độ bây giờ là 23 độ C”.
2.1.3 Kết quả và bàn luận
Bản mạch của hệ đo sau khi lắp ráp được chỉ ra (tương tự) như trong hình 4.
14
Hình 4: Bản mạch cùa hệ đo.
Dự báo thời tiết đơn giản: Bằng cách bổ sung thêm cảm biến áp suất và lập
trình thể hiện được biến thiên và tác động tương hồ của các tham số nhiệt độ, áp
suất, độ ẩm cũng như biến đổi theo thời gian của các thông số, hệ thống có thể
đưa ra những thông báo đơn giản về thời tiêt như: độ ẩm quá cao hoặc trời sắp
mưa hoặc hôm nay trời quá nóng, kiểu như “Quý Ông qúa mập, nên giảm ăn” ở
các cân ngoài đường phố.
Kết quả: Các thông số đo như nhiệt độ, độ ẩm và có thể cả áp suất có thể được
hiển thị trên màn LCD, được lưu trữ trong bộ nhớ và đồng thời các thông tin này
cũng được thông báo bằng giọng nói tiếng Việt.
Kết luận: Đây là một trong nhiều ứng dụng của môđun RPM kết hợp với một vi
điều khiển và các cảm biến trong các hệ thống đo lường đê thông báo kết quả
bằng giọng nói. Thiết kế này có thể được sử dụng như là một ví dụ tham khảo
cho việc phát triển các ứng dụng đo lường và điều khiển phức tạp hơn như các
trạm dự báo thời tiết cầm tay, các máy bán hàng tự động, đo lường từ xa, cũng
như các hệ thống giám sát trong y tế và các hệ thống tự động trong công nghiệp.
15
2.2 TÍCH HỢ P CHIP CHUYÊN DỤNG VÀO CÁC
HỆ TH ỐNG ĐO NHIÈU MÀN HIÊN THỊ
2.2.1 Đặt vấn đề
Trong các hệ thống đo lường điện hoặc đo lường Vật lý nói chung thường
xuất hiện khả năng phải quan sát nhiều đại lượng đo đồng thời (xem hình 5).
Khi đó, về nguyên tắc phải lẳp cho mỗi bộ hiển thị một bộ điều khiển hiên thị.
Số các đại lượng đo đồng thời càng nhiều thì số bộ điều khiển cũng nhiều theo
và số linh kiện, công lắp ráp cũng theo đó mà tăng lên. Đây là một khả năng có
thể đưa các chip chuyên dụng vào để ứng dụng.
H ình 5: M àn hiển thị của hệ thống đo vói nhiều màn hiển thị.
16
Do các bộ điều khiển hiển thị thường giống nhau về mặt cấu trúc nên trong
trường hợp này ta có thể áp dụng phương pháp lập trinh theo kiểu môdun và
ngôn ngữ lập trình là VHDL như đã mô tả ở phần đầu. Trong phần này, chúng
tôi sẽ thông báo một số kết quả trong việc lập trình cho các chip điều khiển hiển
thị đông thời nhiều môdun, trên thực tế đã thử với 3 môdun nhung về nguyên tắc
có thê mờ rộng số môdun lên nhiều hơn; vấn đề chỉ thuộc vào số chân của “chip
trắng” được lựa chọn.
2.2.2 Phần thực nghiệm và các kết quả
Để có được các chip với các tính năng cần có, quá trình thiết kế và thực hiện
được tiến hành theo 2 bước cơ bản:
• Viết phần mềm mô tả hoạt động thực sự của mạch điện cần thiết kế bằng
ngôn ngữ VHDL.
• Soát lỗi, dịch và nạp chương trình vào chip.
2.2.2.1 Viết phần mềm và nạp vào chip Xilinx
Trong khuôn khổ đề tài, có 4 môđun đã được thiết kế và thử nghiệm, cụ thể
1- Bộ đếm Johnson.
2- Bộ đếm nhị phân
3- Bộ giải mã BCD ra mã 7 đoạn
4- Bộ đếm Johnson và giải mã thập phân.
5- Bộ hiển thị nhiều màn hiển thị
Các môđun này đã được mô tả bằng ngôn ngữ VHDL theo các lưu đồ thuật toán
trên các trang sau:
17
ĐAI H : c . c c
r_
T.IJNG ĨÂ V 'H Õ f.G
- A •/;>
TIN ’ HƯ ViẼN
DI/ĨQ
í?
1) Bộ đếm Johnson
Chú thích: C1K : cổng lối vào xung nhịp
D o u t: Cổng lối ra bộ đếm 8 bit
18
2) Bộ đếm nhị phản : trong lưu đồ này thiết kế bộ đếm nhị phân 8 bit, việc
tãng số bit chỉ đòi hỏi tăng thêm số lượng lối ra và vấn đề này giải quyết
bằng phần mềm tương đối đơn giản. Vấn đề chỉ là chip được sử dụng có đú
số chân để gán thành các lối ra hay không!
Chú thích:
Clk : lối vào xung nhịp
Dout: lối ra bộ đếm 8 bit
19
3) Bộ giải mã BCD ra mã 7 đoạn
C Bát đáu )
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 downto 0));
Chú thích:
Clk: lối vào xung nhịp
Din: lối vào 4 bit
Dout: lối ra 8 bit
CASE din is
WHEN "0000"
=> ra <=
' 11000000"
WHEN
'(XX) 1"
=> ra <=
’11111001"
-1
WHEN
'0010"
=> ra <=
•10100100"
-2
WHEN
'0011"
=> ra <=
'10110000"
-3
WHEN
‘01 (X)" => ra <=
'10011001''
- 4
WHEN
•0101"
=> ra <=
■10010010"
—5
WHEN •0110"
=> ra <=
' 10000010"
6
WHEN
•0111"
=> ra <= *11111000”
- 7
WHEN
•1000" => ra <=
•10000000"
- 8
WHEN
•1001"
=> ra <=
'10010000"
- 9
WHEN
■1010"
=> ra <=
'10100000” -A
WHEN
•1011"
=> ra <=
'10000011"
-B
WHEN
'1100"
=> ra <=
*10100111"
«c
WHEN
1101"
=> ra <=
'10100001" -D
WHEN
'1110"
=> ra <=
'1 (XXX) 100"
-E
WHEN
’1111"
=> ra <=
'l(XX)l 1 lo -F
WHEN
)thers
=> null;-
rd <= ”1 KKKMHK)";
END CASE;
ĩ
c
^
Két thúc
Process
k
_______
y
20
4) Bộ đếm Johnson và giải mã thập phân
Q Bắt đáu ^
Chú thích:
Clk: lối vào xung nhịp Dir: lối vào xác định hướng đếm
D o ut: lối ra 8 bit
21
Tối tru hoá phần mềm
Một chỉ tiêu luôn được chu ý đến trong quá trình soạn thảo và soát lỗi phần
mềm VHDL là giảm thiểu vùng bị chiếm trên chip, có như vậy mới có thể tích
hợp một lượng lớn các cổng lôgic trên một chip. Sau mỗi lần dịch tỷ lệ vùng bị
chiếm luôn được xem xét, nhờ vậy tất cả các mô đun đều có thể tích hợp lên
chip XC9536 (chỉ chứa 36 ô macro).
2.2.2.2 Xây dựng các mạch kiểm chứng
Sau khi chương trình đã được soạn thảo, được chạy thử và loại bỏ các lỗi thì
có thể chuyển sang bước nạp phần mềm vào chip, v ề nguyên tắc, sau khi được
nạp chip sẽ được gán chức năng và “đặt tên” đúng như nội dung đã được mô tả
khi thiết kế. Tuy vậy việc kiểm tra lại hay như thường nói là kiểm chứng vẫn là
cần thiết, qua đó khẳng định chẳng hạn xem bộ giải mã đã đúng là bộ giải mã
chưa và quá trình hoạt động có làm xuất hiện lỗi không. Trong khuôn khổ của
để tài nghiên cứu, các mạch kiểm chứng cho từng trường hợp đều đã được thiết
kế và lắp ráp, cho dù thời gian dành cho công việc này dài không kém phần thiết
kế lưu đồ và viết chương trình đã nêu ở trên
Bộ giải mã BCD sang 7 thanh
Để minh chứng tính đúng đắn và khả năng hoạt động của bộ giải mã BCD
sang 7 thanh một bộ đếm nhị phàn 4 bit và giải mã BCD sang 7 thanh đã được
tích hợp trên cùng một chip Xilinx. Trên mạch điện minh hoạ, chip được nối với
một LED 7 thanh (đóng vai trò hiển thị kết quả) và một bộ tạo xung nhịp cấp
cho bộ đếm dùng vi mạch định thời gian NE555P. Lối ra của bộ tạo xung
NE555P được nối trực tiếp tới chân clock GCK1 (chân 5) của chip Xilĩn
XC9536. Các điện trở và tụ điện dùng với NE555 được lựa chọn để xung nhịp
có tần số 22 Hz (đủ để kết quả hiển thị không bị nhấp nháy !).
Việc nạp chương trình vào chip được thực hiện thông qua cáp JTag (theo
chuẩn JTAG !) và phần mềm công cụ Xilinx ISE. Việc nạp chương trình cho một
chip Xilinx bất kỳ (trong trường hợp này sử dụng chip XC9536) có thể tiến hành
ngay cả khi chip đang được gắn trên một bản mạch ứng dụng. Cáp Jtag cho phép
lập trình, kiểm tra, xoá và kiểm tra chức năng của các chip Xilinx XC9536.
Sơ đồ nguyên lý của mạch kiểm chứng đã thiết kế được mô tả trên hình 6.
22
J1
JTAG
Hình 6: Sơ đồ nguyên tắc của mạch điện minh chứng khả năng
hoạt động của chip giải mã BCD sang 7 thanh
Hình 7: Bản mạch minh chứng khả nâng hoạt động của chip giải
mã BCD sang 7 thanh.
23
.Mạch điện sau khi lắp ráp và điều chỉnh được chỉ ra trên hình 7. Ta có thể
dễ dàng nhận thấy chip Xilinx nằm ở chính giữa của mạch.
Phía bên trái là vi mạch NE555 được dùng để tạo xung đếm. Phía bên phải là
một LED 7 thanh hiển thị kết quả đếm số xung đã đưa vào chip Xilinx. VI bộ
đếm nhị phân được thiết kế ở đây là bộ đếm nhị phân 4 bit, nên kết quả hiển thị
trên LED 7 thanh sẽ là từ 0 đến 15, 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.
Bộ đếm Johnson và giải m ã thập phân
Bản mạch minh chứng được miêu tả ở đây là một công cụ minh hoạ cho khả
năng lập trình trong hệ thống (tức khả năng thay đổi chương trình cho chip ngay
trong bản mạch ứng dụng mà không cần phải tháo chip và dùng một bản mạch
nạp chuyên dụng).
Mô tả thiết kế
Thiết kế thực hiện một bộ đếm Johnson 8 bit. Lối ra của bộ đếm điều khiển 8
LED cho phép quan sát tình trạng hoạt động của bộ đếm. Một vi mạch định thời
gian NE555 được sử dụng để tạo xung nhịp cấp cho bộ đếm. Lối ra của bộ tạo
xung NE555 được nối trực tiếp tới chân clock CLK1 (chân 5) của chip Xilinx (ở
đây là XC9536). Các điện trở và tụ điện trong mạch tạo xung NE555 cũng được
lựa chọn để tạo ra xung có tần số 22 Hz. Chương trình cũng được nạp vào chip
thông qua cáp JTag giống như ở trường hợp trên. Sơ đồ nguyên lý của bộ đếm
Jonson được chỉ ra trong hình 8.
24
Mạch điện sau khi lắp ráp và điều chỉnh được chỉ ra trên hình 8.
Hình 9: Mạch điện minh chứng khả năng hoạt động của chip bộ đếm Johnson.
Về cơ bản thì mạch điện này chỉ khác mạch ở hình 9 là một dãy 8 LED đơn
đã thay thế cho LED 7 thanh. Khi bật điện các LED sẽ lần lượt sáng phù hợp với
giản đồ thời gian ở các lối ra của bộ đếm Johnson.
Theo thiết kế truyền 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ộ hiển thị LED 7 thanh. Sơ đồ khối của hệ thống có
thể hình dung là rất phức tạp. Đe đơ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 10.
CBISĐ I
CBNĐ2
CB NĐ3
CBN Đ 4
CBNĐ s
PSoC
XC9536
LED 1
NhđộTB
LED 2
Nhđộ 5
LED 3
-ặ • Độ ẩm
CBĐA 1
H ình 10: Sơ đồ khối của hệ thống sử dụng các chip lập trình được.
25