Với mục tiêu hạn chế tối đa linh kiện ngoài khi xây dựng một hệ thống có sử dụng vi xử lý, các hãng chế tạo bán dẫn đã tích hợp cách mạng ngoại vi và bộ vi xử lý lên một chíp duy nhất để
Trang 1Trường đại học quốc gia hà nội Trường đại học công nghệ
Trang 2Trường đại học quốc gia hà nội Trường đại học công nghệ
Nguyễn Hữu Nhận
Xây dựng hệ thống đo áp suất, hiển thị trên màn
hình tinh thể lỏng
Khoá luận tốt nghiệp hệ chính quy
Ngành: Điện tử và kỹ thuật máy tính
Cán bộ hướng dẫn: Ngô Diên Tập
Hà nội 2005
Trang 3Lời cảm ơn
Trước hết em xin bày tỏ lòng biết ơn xâu sắc tới thầyNgô Diên Tập, người đã hướng dẫn em trong suốt thời gianqua, giúp em hoàn thành nhiệm vụ đặt ra cho khoá luận
Em xin chân thành cảm ơn các thầy, các cô trongtrường đại học Công Nghệ đã dạy dỗ em, tao điều kiệncho em học tập và hoàn thành bài khoa luận này
Xin chân thành cảm ơn sự góp ý và giúp đỡ của cácbạn trong lớp k46DC trong thời gian qua
Hà nội tháng 6 năm 2005
Nguyễn hữu Nhận
Trang 4Tóm tắt khoá luận
Sau thời gian tìm hiểu em đã hoàn thành bài khoá luận với đề tài: Xây dựng
hệ thống đo áp suất, hiển thị với màm hình tinh thể lỏng Nội dung của nó được
tóm tắt như sau
Trước hết là việc tìm hiểu về cơ sở lý thuyết, để xây dựng hệ thống đo lường
em sử dụng vi điều khiển, đặc điểm nổi bật của vi điều khiển AVR và đặc biệt là vi
điều khiển ATMEGA8535 Sau đó là cơ sở lý thuyết về áp suất, cảm biến áp suất,
bộ hiển thị màm hình tinh thể lỏng (LCD), sơ đồ nguyên lý chung của hệ thống và mạch nạp cho vi điều khiển
Phần tiếp theo là phần thực nghiệm Phần này trình bày về việc xây dựng hệ thống đo áp suất thực tế theo đúng như lý thuyết đã tìm hiểu, kết quả thu được từ
hệ thống, nhận xét về hệ thống, sai số của hệ thống và hướng phát triển sản phẩm thực tế cho ứng dụng
Trang 5Môc lôc
1.2.1 Vi ®iÒu khiÓn Microchip PIC 12Xxxx, 16Xxxx, 17Xxxx,
3.1 §¨c tr−ng cña vi ®iÒu khiÓn ATMEGA8535 18
Trang 63.1.1 Cấu hình chân 20
3.1.2 Sơ đồ khối cấu trúc của vi điều khiển AVR ATMEGA8535 22
Chương 4: Thực hiện ghép nối các khối chức năng 34
4.2 Ghép nối bộ cộng hưởng tạo xung nhịp cho hệ thống 34
4.4 Ghép nối ngoại vi và sử dụng bộ biến đổi ADC bên trong 36
Chương 5: Xây dụng bộ nạp và phần mềm nạp chương trình cho vi điều khiển
Trang 7Mở Đầu
Bộ vi xử lý đầu tiên ra đời năn 1971 đã mở ra một thời đại mới trong công nghệ điện tử tin học, có ảnh hưởng sâu sắc đến mọi lĩnh vực khoa học công nghệ Các hệ thống được thiết kế dựa trên nền tảng của các bộ vi xử lý có các khả năng
mà các hệ thống điện tử tương tự/số thông thường không thể thực hiện được
Với mục tiêu hạn chế tối đa linh kiện ngoài khi xây dựng một hệ thống có
sử dụng vi xử lý, các hãng chế tạo bán dẫn đã tích hợp cách mạng ngoại vi và bộ vi
xử lý lên một chíp duy nhất để tạo ra các bộ vi điều khiển
Những bộ vi điều kiện mới nhất của MICROCHIP, MOTOROLA, ATMEL, AVR,… đã chứa bên trong nhiều thiết bị ngoại vi như các loại bộ nhớ, các bộ đếm
16 bít, khối ADC phân giải 10 – 12 bít với nhiều lối vào, các cổng truyền thông loại PSP/ UART / I2C / CAN/ USB, khối điều khiển màn biểu thị tinh thể lỏng, thậm chí cả khối điều chế / giải điều chế dải tần UHF dùng cho kết nối không dây… Giải pháp này làm cho việc ứng dụng các vi điều khiển để chế tạo các hệ thống có vi xử lý thêm thuận lợi, thu gọn đáng kể kích thước mạch điện và đạt tỷ
số hiệu năng / giá thành càng rất cao
Trong một số lĩnh vực sản xuất cũng như đời sống, việc đo đạc, theo rõi và thu thập các thông số về điều kiện môi trường như nhiệt độ, độ ẩm, áp suất, gió …
là một nhu cầu cần thiết việc xây dựng được một hệ thống tự động đáp ứng được các yêu cầu trên rất có ý nghĩa thực tiễn Tuỳ từng lĩnh vực khác nhau mà các thông số khác nhau được sử dụng Nhưng theo thống kê thì nhiệt độ và áp suất là hai thông số được quan quan tâm nhièu nhất, vì vậy trong bài khoá luận này em chỉ lấy việc xây dựng hệ thống áp suất làm ví dụ
Những hệ thống tự động theo dõi thu thập số liệu có thể thực hiện được trên máy tính bàng cách lắp giáp thêm những Card mở rộng, để ghép nối máy tính với các bộ phận cảm biến Giải pháp này có ưu điểm là khai thác được khả năng đa nhiệm vụ của máy tính: máy tính để điều khiển viêc thu thập số liệu đồng thời dùng để xử lý kết quả
Tuy nhiên trong một số công tác quan trắc cụ thể, việc sử dụng các hệ thống xây dựng trên cơ sở máy tính tỏ ra chưa hẳn đã phù hợp do hệ thống có kích thước lớn, không hoạt động lâu dài trong điều kiện đo đạc ngoài hiện trường có điều kiện thời tiết khắc nghiệt, tại các địa điểm xa nguồn điện lưới …
Một hướng khác để xây dựng các hệ thống thu thập số liệu là sử dụng bộ vi
điều khiển đóng vai trò như bộ xử lý trung tâm, điều khiển toàn bộ hoạt động của
hệ thống Theo xu hướng áp dụng các vi điều khiển để thiết kế các hệ thống đo lường điều khiển tự động, trong khuôn khổ bài luận văn này em tập trung nghiên cứu, tìm hiểu, áp dụng vi điều khiển ATMEGA8535 của ATMER để thiết kế chế
Trang 8tạo một hệ thống thu thập số liệu về áp suất phục vụ các công tác nghiên cứu và giám sát môi trường
Với mục đích hiểu rõ chức năng và làm chủ phương pháp lập trình cho khối bên trong của vi điều khiển ATMEGA8535 gồm các cổng vào/ra số, các bộ đếm, cổng truyền nhận đông bộ và không đồng bộ, khối biến đổi tương tự số DAC…
Tìm hiểu xây dựng sơ đồ khối tổng thể cho hệ thống đo đo lường (đo áp suất)
Tìm hiểu khối chức năng hiển thị kết quả đo (modun LCD) và ghép nối chúng với vi điều khiển
Tìm hiểu về cảm biến (cảm biến áp suất), nguyên lý hoạt động và sự lựa chon cảm biến
Thiết kế lắp ráp phần cứng và phần mền điều khiển hệ thống
Trang 9Phần I: cơ sở lý thuyết
Chương 1: Tổng quan về vi điều khiển
1.1 Tổng quan về vi mạch vi điều khiển
Hiện nay việc thiết kế và chế tạo ra các bộ vi xử lý phát triển theo hai hướng chính Hướng thứ nhất là thiết kế các bộ vi xử lý mạnh tốc độ cao- thực hiện hàng
tỉ lệnh mỗi giây, độ dài từ dữ liệu lớn 32 hoặc 64 bit, truy cập không gian bộ nhớ tới hàng trăm Mbyte Các bộ vi xử lý này được dùng trong các hệ thống cần có công suất tính toán cao như máy tính cá nhân, các hệ thống điều khiển trong công nghiệp Hướng thứ hai là thiết kế, chế tạo các vi điều khiển (microcontroller), đó là một vi khối: bộ nhớ, bộ đếm, bộ biến đổi tương tự số, bộ so sánh, các cổng truyền thông… Nói khác đi, đó chính là một hệ thống máy tính trong một vi mạch Các
bộ vi điều khiển điển hình là Motorola 68HC11, Intel 8051, microchip PIC, ATMEL AVR…
Nhân tố chính thúc đẩy việc nghiên cứu chế tạo các vi mạch vi điều khiển là tính đa dụng, dễ lập trình, nhỏ gon, tiết kiệm năng lượng và giá thành thấp Vi điều khiển rất hấp dẫn trong các hệ thống điều khiển điện tử có kích thước nhỏ, chức năng đa dạng, dễ dàng tích hợp vào trong hệ thống để thực hiên tất cả các chức năng điều khiển
Bộ vi điều khiển được dùng rộng rãi trong các thiết bị điện tử: Chúng có mặt trong các thiết bị viễn thông, các máy văn phòng, thiết bị giải trí, đồ điện tử gia dụng và cả trong đồ chơi cho trẻ em Các thiết bị đó nói chung đều cần một cơ sở
điều khiển “thông minh”, có khả năng tương tác với người sử dụng
Trang 10Hình trên là sơ đồ khối của vi điều khiển có đầy đủ tính năng và các thiết bị bên ngoài có thể nối được với bộ vi điều khiển
Các thành phần của vi điều khiển là CPU, RAM, ROM, cổng vào/ra số, giao diện truyền thông nối tiếp, bộ đếm thời gian, chuyển đổi tương tự số A/D và số tương tự D/A CPU thực hiện các chỉ thị được lưu trong bộ nhớ chương trình ROM
để điều khiển tất cả các phần còn lại RAM được dùng để lưu các thiết lập và các biến được sử dụng trong chương trình ROM dùng để lưu chương trình và số liệu
cố định Bộ nhớ ROM của vi điều khiển sau khi được nạp chương trình chở thành phần sụn Bộ nhớ chương trình ROM này có thể là loại ROM mặt nạ: chương trình
được đưa vào ngay trong quá trình chế tạo vi mạch, loại OTP ROM cho phep nạp chương trình một lần, còn loại EPRROM có thể ghi xoá nhiều lần, chúng được lập trình bởi nhà thiết kế hệ thống
Chương trình cho vi điều khiển là một tập lệnh đã dịch thành mã máy(thường
được nạp trực tiếp từ máy tính vào bộ nhớ ROM bên trong vi điều khiển thông qua
bộ nạp chương trình) Một phía bộ nạp chương trình nhận dữ liệu từ cổng máy tính, phía khác nó đưa dữ liệu vào vi điều khiển qua các chân “nạp chương trình ” của vi mạch, các chân này lại là các chân vào/ra thông thường sau khi vi điều khiển đă
được nạp chương trình
Các cổng vào/ra số cho dữ liệu nhị phân di chuyển vào ra qua cá chân của vi mạch Các chân này dùng để ghép nối vi điều khiển với các thiết bị vào/ra số hay ghép nối với bộ vi điều khiển khác để thực hiện các chức năng khác nhau
Cổng truyền dữ liệu nối tiếp tạo khả năng giao tiếp của hệ thống với các hệ thống khác qua chuẩn giao thức bao gồm SPI, I2C, UART, CAN…
Khối chuyển đổi A/D cho phép vi điều khiển chuyển đổi các mức điện áp tương
tự từ lối vào thành số để có thể xử lý số và lưu trữ Khối D/A tạo cho vi điều khiển
có thể đưa ra mức điện áp tương tự cho thiết bị không tương thích với điều khiển
- Dung lượng bộ nhớ ROM chương trình 512 byte đến 8 Kbyte
- Có 25 byte đến 400 byte RAM
- Có khối UART ở các loại cấp trung, cấp cao
- Có 1 đến 3 timer 8 bit,16 bit
- Bộ DAC 8 đến 10 bit, 6 đến 8 kênh vào
- Có bộ nhớ EEPROM dung lượng 64 đến 512 byte ở họ Fxxx
- Tần số xung nhịp từ 4 đến 40 MHz
- Tập lệnh RISC
Trang 11- Đa số nạp trình theo kiểu nối tiếp, theo giao thức ICSP
- Không có hoặc tối đa là 20 Kbyte bộ nhớ lệnh
- Có 1Kbyte bộ nhớ RAM bên trong
- Đóng vỏ 8-20-40-64 chân, tương ướng với 3-15-32 chân vào ra
- Dung lương bộ nhớ chương trình 512 byte- 8 Kbyte
- Có 128 byte đến 512 byte RAM
- Có khối UART
- Có 1 đến 2 timer 8 bit, một số loại có timer 16 bit
- Bộ ADC 10 bit, 6_8 lối vào
- Có bộ nhớ EEPROM dung lượng 64- 512 byte
- Tần số xung nhịp từ lên tới 12 MHz
- Tập lệnh RISC
- Nạp chương trình theo kiểu nối tiếp, theo giao thức ICSP
Trong bài khoá luận này họ vi điều khiển AVR đã được lựa chon bởi vì nó
có đầy đủ chức năng của một vi điều khiển, và nó còn có thêm nhiều khối chức năng tạo nên sự tiện lợi cho việc thiết kế các hệ thống đo lường:
1 Kiến trúc RISSC với hầu hết các lệnh có chiều dài cố định, truy cập bộ nhớ nạp –lưu trữ, 32 thanh ghi đa năng
Trang 122 Kiến trúc kiểu đường ống lệnh kiểu hai tầng cho phép làm tăng tốc độ thi hành lệnh
3 Có chứa nhiều bộ phận ngoại vi ngay trên chíp, bao gồm cổng I/O số, bộ biến đổi ADC, bộ ngớ EEPROM, bộ định thời, UART, bộ định thời RTC, bộ điều chế độ rộng xung (PWM)… Đặc điểm này được xem là nổi bật so với nhiều vi điều khiển khác vì trong khi nhiều vi điều khiển khác phải rạo bộ truyền nhận UART hoặc giao diện SPI bằng phần mền hay “máy ảo” thì trên vi điều khiển AVR lại được thực hiện bằng phần cứng Trên các vi điều khiển AVR đã tích hợp sẵn:
- Đến 48 đường dẫn vào ra (I/O) lập trình được
- 2 bộ truyền nhận UART lập trình được
- Một giao diện SPI đồng bộ
- Một giao diện TWI đông bộ tương thích I2C
- 3 bộ timer/counter 8 bit
- Một bộ timer/counter 16 bit với chức năng so sánh và bắt mẫu
- 4 lối ra điều biến độ rộng xung
- 1 đồng hồ thời gian thực(RTC-timer)
- Bộ biến đổi DAC 10 bit với 8 kênh
- Một bộ phát hiện trạng thái sụt áp nguồn nuôi
- Một bộ so sánh analog
- Một bộ đinh thời watchdog
Tất nhiên số lượng cụ thể của các bộ phận ngoại vi khác nhau giữa các
vi điều khiển AVR cụ thể Điểm đáng lưu ý đối với các thiết bị ngoại vi là: từng bộ phận được thiết kế như modul đa năng Vì vậy khi làm quen với một modul phần cứng thì đã có kinh nghiệm khi gặp lại modul này trên các
có dòng tiêu thụ tương đối cao, và không có các bộ phận ngoại vi tích hợp sẵn tiện dụng cho người sử dụng như các vi điều khiển AVR Chính
điều này cũng làm tăng tốc độ xử lý lệnh tích chung trên hệ thống
Trang 136 Bộ nhớ chương trình và dữ liệu được tích hợp ngay trên chíp Trên chip
vi điều khiển AVR có tới 3 công nghệ bộ nhớ khác nhau:
- Bộ nhớ EPROM xoá được kiểu flash (luôn luôn lập trình mới được) dùng cho mã chương trình mà người dùng có thể tự lập trình được
- Bộ nhớ RAM tĩnh dùng cho các biến, nội dung của nó sẽ mất đi khi tắt
điện áp nguồn Ngoài ra vi điều khiển AVR có tới 32 thanh ghi làm việc tất cả đều được nối trực tiếp với khối ALU và được trao đổi trực tiếp trên vùng địa chỉ bộ nhớ
- Bộ nhớ EEPROM hay PROM xoá được bằng điện, nhưng nội dung của
nó vẫn giữ nguyên khi tắt điện áp nguồn Chương trình người dùng có thể được lập trình trong thời gian thực khi hệ thống đang hoật động
7 Khả năng lập trình được trong hệ thống Do cách thiết kế và công nghệ
bộ nhớ được sử dụng mà các vi điều khiển có thể lập trình được ngay khi
đang được cấp nguồn trên bản mạch, không cần phải nhấc ra khỉ bản mạch như các vi điều khiển của họ khác Các cổng giao tiếp RS-232 và SPI cho phép dễ dàng thực hiện việc lập trình trên hệ thông
8 Được đóng vỏ với 8 chân đến 64 chân để thích ứng với nhiều loại ứng dụng khác nhau Từ các ứng dụng chi phí thấp với các vi điều khiển TINY 8 chân đến những loại thông dụng với 20 chân hoặc 44 chân và cuối cùng là loại MEGA-AVR với 40 chân hai hàng hoặc 64 chân kiểu
vỏ vuông loại vỏ vuông 64 chân là bước đột phá chưa có đối thủ cạnh tranh về khả năng xử lý và giá thành
9 Có tốc độ xử lý lớn hơn đến 12 lần so với các vi điều khiển CISC thông thường
10 Hỗ trợ cho việc lập trình bằng ngôn ngữ bậc cao
11 Tất cả các vi điều khiển AVR đều được chế tạo bằng công nghệ CMOS 0,6 àm công ty ATMEL cũng đang hướng tới công nghệ 0,35 àm nhằm
đạt đến tốc độ cao hơn với giá thành hạ
12 Điện áp làm việc cho phép thay đổi trong khoảng rộng, từ 2,7 đến 6 V, nên cho phép thể hiện ưu điểm rõ dệt của các thiết bị sách tay, sử dụng pin
13 Một kiến trúc hợp lý và đơn giản sẽ giúp cho người dùng giảm thiểu
được thời gian cần thiết để làm quen và tiến tới làm chủ được các vi điều khiển AVR
14 Tập lệnh của AVR có đến 133 lệnh cho phép lập trình một cách dễ dàng và đơn giản bằng hợp ngữ, nhưng cấu trúc của vi điều khiển AVR còn cho phép lập trình bằng ngôn ngữ C
Trang 14Chương 2
kiến trúc của vi điều khiển AVR
Các bộ xử lý AVR có kiến trúc Harvard (bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt) hình 2-1 một bản phác thảo kiến trúc bên trong của một vi điều khiển Bus dữ liệu là một bus 8 bit, cho phép nối hầu hết các bộ phận ngoại vi với tệp thanh ghi Bus dữ liệu dùng cho bộ nhớ chương trình có độ rộng 16 bit và chỉ nối với thanh ghi lệnh Các bộ vi điều khiển AVR khác như có thể khác nhau về quy mô các bộ phận ngoại vi và dung lượng bộ nhớ chương trình và bộ nhớ dữ liệu
Hình 2.1: Bản phác thảo kiến trúc của vi điều khiển AVR
2.1 Bộ nhớ chương trình
Bộ nhớ chương trình là một loại bộ nhớ flash Dung lượng chính xác của bộ nhớ này thay đổi khác nhau giữa các bộ vi xử lý trong cùng họ Bộ nhớ chương trình được truy cập theo từng chu kỳ đồng hồ, và một lệnh được nạp vào thanh ghi lệnh Thanh ghi lệnh nối với tệp thanh ghi bằng cách lựa chon xem thanh ghi nào
được ALU sử dụng để thực thi lệnh Lối ra của thanh ghi lệnh được giải mã bằng
bộ giải mã lệnh để quyết định chọn tín hiệu điều khiển nào sẽ được kích hoạt để hoàn thành lệnh hiện tại Bộ nhớ chương trình, ngoài các lệnh lưu trữ còn có các
Trang 15vector ngắt bắt đầu ở địa chỉ $0000 Số lượng các vector ngắt cũng khác nhau tuỳ thuộc vào từng bộ vi xử lý Chương trình hiện tại bắt đầu ở vị trí bộ nhớ phía bên kia vùng dùng cho vector ngắt
2.2 Bộ nhớ dữ liệu
Bộ nhớ dữ liệu được phân chia thành những loại khác nhau Bộ nhớ dữ liệu
có trên một vi điều khiển AVR được chia thành 5 phần khác nhau:
2.2.1Tệp thanh ghi
Tất cả các bộ vi điều khiển điều AVR đều có 32 thanh ghi đa năng(từ R0 đến R31) Trong đó có một số thanh ghi có thêm trức năng riêng, bổ sung (R0, R26, R31) Tệp thanh ghi này lại được chia thành 2 phần, mỗi phần có 16 thanh ghi (từ R0 đến R15 và từ R16 đến R31) Tất cả các lệnh thao tác trên các thanh ghi đều truy cập trực tiếp theo một chu trình
đơn
2.2.2 Thanh ghi vào/ra(I/O)
Thanh ghi vào, ra mỗi thanh ghi 8 bit, hầu hết các bộ vi điều khiển AVR có 64 thanh ghi (một số vi điều khiển AVR có nhiều hơn tuỳ thuộc vào số các bộ phận ngoại vi có trên chip) Các thanh ghi vào ra này thực chất là một phần của bộ nhớ SRAM trên chip và có thể được truy cập nhớ-
bộ nhớ SRAM, nhưng hầu hết nó được truy cập như các thanh ghi I/O
Trang 16Chúng ta có thể truy cập đến các thanh nghi này bằng lênh IN, OUT Ngoài
ra ta cũng có thể truy cập theo từng bit bằng một số lệnh như: SBI,CBI…
2.2.3 Bộ nhớ SRAM bên trong
Nó có trên hầu hết các bộ vi xử lý AVR, dung lượng của nó là khác nhau tương ứng với các vi điều khiển khác nhau Nó được dùng cho ngăn xếp cũng như lưu trữ các biến Vị trí của ngăn xếp được chỉ thị bởi con trỏ ngăn xếp
2.2.4 Bộ nhớ SRAM bên ngoài
Đặc tính này chỉ có ở bộ xử lý cỡ lớn trong họ vi điều khiển AVR
Ta có thể sử dụng bất kì bộ nhớ SRAM nào khi thiết kế Việc giao tiếp với SRAM ngoài được thực hiện trên cổng A hoặc cổng C của các vi điều khiển Thời gian truy cập mặc định trên tới các SRAM ngoài lên tới 3 chu
kỳ đồng hồ, nó cung có thể tăng lên 4 chu kỳ đồng hồ bàng cách thiết lập bit SRW
2.2.5 EEPROM
Bộ nhớ EEPROM có sẵn trên hầu hết tất cả các bộ điều khiển AVR
và được truy nhập theo bản đồ bộ nhớ tách biệt Địa chỉ bắt đầu của bộ nhớ EEPROM luôn là $0000 Các bộ vi xử lý khác nhau có từ 64 byte đến 4kbyte bộ nhớ EEPROM Bộ nhớ EEPROM có thể được đọc ghi bởi bất kỳ chương trình nào Việc đoc bộ nhớ EEPROM diễn ra nhanh hơn ghi vào EEPROM, và nó có thể ghi được vào khoảng 100.000 lần Bộ nhớ EEPROM được truy nhập thông qua các thanh ghi truy nhập EEPROM cụ thể là: Thanh ghi địa chỉ EEPROM (EEAR), thanh ghi dữ liệu EEPROM (EEDR), và thanh ghi điều khiển EEPROM (EECR)
2.3 Khối số học logic
Khối số học logic (ALU) thực hiện các thao tác như thao tác bit; phép tính
số học logic trên nội dung thanh ghi và ghi ngược kết quả vào thanh ghi trên thanh ghi dã được chỉ định Các thao tác này được thực hiện trong một chu kỳ đông hồ
đơn lẻ Mỗi thao tác ALU đều làm ảnh hưởng đến các cờ trong thanh ghi trang thái (điều này phụ thuộc vào từng lệnh khác nhau)
2.4 Bộ định thời
Bộ định thời trong vi điều khiển AVR có chức năng định thời nhưng nó cũng giống như bộ đếm Giống bộ định thời, tín hiệu giữ nhịp bên trong được sử dụng để giữ nhịp cho bộ định thời, trong khi giống như một bộ đếm, một tín hiệu
từ bên ngoài ở các chân của cổng được sử dụng để giữ nhịp cho bộ đếm/định thời
Trang 172.5 Bộ truyền nhận UART
2.5.1 Việc truyền
Dữ liệu được khởi tạo bằng cách ghi dữ liệu vào thanh ghi dữ liệu I/O UART, ký hiệu là UDR Dữ liệu được truyền từ UDR đến thanh ghi dịch truyền khi:
- Một kí tự mới được ghi vào UDR sau khi bit stop từ ký tự trước đó được dịch chuyển ra Thanh ghi dịch chuyển ra được nạp ngay lập tức
- Một ký tự mới đã được ghi vào UDR trước khi bit stop từ ký tự trước đã dịch đi Thanh ghi dich được nạp khi bit stop của ký tự đang được truyền
đã được dịch chuyển ra
2.5.2 Việc nhận
Khối logic front-end của bộ nhận lấy mẫu tín hiệu trên chân RxD ở tần số bằng 16 lần tốc độ baud Khi đường dẫn không có tín hiệu truyền, một mẫu đơn lẻ của giá trị lo gic “0” được dịch như sườn âm của bít start và dãy phát hiện bít start được khởi tạo
Khi bit stop được đưa tới bộ nhân, thì đa số trong số 3 mẫu cần phải bằng 1 để tiếp nhân bit stop
Trang 18sơ đồ khối bộ nhận UART
2.6 Cấu trúc ngắt
Ngắt là cơ cấu điều khiển dòng lệnh, cơ cấu này được thiết kế trên hầu hết các bộ điều khiển Trong quá trình giao tiếp của hệ thống bộ xử lý với thế giới bên ngoài, nhiều sự việc xảy ra theo cách không đồng bộ Điều này gây khó khăn cho hoạt động của bộ vi xử lý khi nó phải kiểm ta tất cả các thiết bị để giám sát sự di chuyển của dữ liệu Ngược lại, mọi việc sẽ trở nên tốt hơn nếu các thiết bị này có thể “loan báo” sự đến nơi của dữ liệu Đây là tất cả những gì mà cơ chế ngắt phải thực hiện Nó sẽ “ngắt” việc thực thi chương trình chính, và vi xử lý phải tạm ngừng thực thi chương trình bình thường để thẩm tra nguồn ngắt, đáp ứng nhu cầu của ngắt, sau đo việc thực thi chương trình lại được tiếp tục khi các nhu cầu ngắt
đã được giải quyết
Tính ưu tiên của ngắt được quy định bởi cách gán các vectơ ngắt Một vavtơ ngắt ở địa chỉ thấp hơn trong bộ nhớ chương trình sẽ có mức ưu tiên cao hơn (khi
đo nó sẽ được phuc vụ trước nếu như có nhiều ngắt đang chờ)
Điều đáng lưu ý nữa là tốc độ xử lý ngắt, nó phụ thuộc nhiều vào kiến trúc của vi xử lý Với các bộ điều khiển AVR thì tất cả các ngắt được cho phép ít nhất 4 chu kỳ đồng hồ
2.7 Bộ so sánh analog
Bộ so sánh analog so sánh các giá trị điện áp lối vào, cụ thể là ở các lối vào AIN0 (AC+) và AIN1 (AC-) với nhau Nếu như điện áp ở lối vào AIN0 lớn hơn lối vào AIN1 thì lối ra của bộ so sánh analog AC0 được đặt lên mức “1” Lối ra này có thể được sử dụng cho bộ timer/counter 1 để trigơ hoặc xoá ngắt bộ so sánh analog
Trang 19Sơ đồ khối của bộ so sánh analog:
Bộ so sánh analog được điều khiển qua thanh ghi điều khiển và trang thái
bộ so sánh analog, thường được viết tắt là ACSR, ở địa chỉ $08 trong vùng địa chỉ vào ra hoặc ở địa chỉ $28 trong vùng địa chỉ bộ nhớ dữ liệu
2.8 Bộ biến đổi A/D bên trong
Các vi điều khiển AVR có bộ biến đổi tương tự số (DAC) với độ phân giải
10 bit Ngoài ra, bên cạnh bộ biến đổi DAC còn có bộ dồn kênh 8 lối vào, mỗi lối
có thể được dẫn riêng lẻ tới bộ hiển thị DAC
Trang 20Sơ đồ khối của bộ DAC:
Bộ biến đổi DAC được điều khiển qua 4 thanh ghi ADMUX, ADCSR, ADCH, ADCL trong vùng địa chỉ vào/ra Thanh ghi ADMUX cho phép ta lựa chọn một trong 8 lối vào Bộ biến đổi DAC có thể hoạt động trong hai chế độ:
- Quá trình biến đổi được người dùng khởi động
- Quá trình biến đổi diễn ra liên tục
Trang 21Việc kết thúc quá trình biến đổi, nghĩa là thời điểm mà một tín hiệu analog
đã được số hoá và sẵn sàng chờ xử lý tiếp tục, sẽ được báo hiệu qua một cờ trong thanh ghi trạng thái (DACSR) Trong thanh nghi này, người dùng còn có thể chọn một trong hai chế độ Kết quả của quá trình biến đổi A/D được đặt o các thanh ghi ADCH ( bit 8 và bit 9) và ADCL(từ bit 0 đến bit 7)
Thanh ghi lựa chon bộ dồn kênh ADC
Thanh ghi dữ liệu ADCL $04(24)
2.9 Bộ định thời WATCHDOG bên trong
Bộ đinh thời watchdog là bộ định thời điều khiển được và được sử dụng làm thiết bị đánh thức trong trường hợp phần mềm bị rơi vào một hoặc một số vòng lăp vô tận hoặc trong trường hợp việc thực thi chương trình bị mắc lỗi Bộ định thời mạnh watchdog có một lối ra, có khả năng đặt lại bộ điều khiển Mạch định thời watchdog timer được giữ nhịp từ một bộ dao động RC riêng biệt trên chip Bằng cách điều khiển mạch chia tần số watchdog timer, khoảng reset mạch watchdog có thể được điều chỉnh Các khoảng reset cũng phụ thuộc vào nguồn nuôi
Hình 3-43 minh hoạ sơ đồ khối của bộ đinh thời mạnh watchdog
Trang 22Chương 3
Sơ đồ khối hệ thống
Để xây dựng một hệ thống đo áp suất, em dùng một cảm biến áp suất (MPX6115), một vi điều khiển (vi điều khiển ATMEGA8535) để thực hiện việc kết nối tính toán và điều kiển việc hiển thị kết quả đo Kết quả đo được hiển thị bằng màn hình tinh thể lỏng (16x2)
Sơ đồ khối của hệ thống như sau:
Vi điều khiển ATMEGA8535
LCD 16x2 Cảm biến
áp suất
3.1 Đăc trưng của vi điều khiển ATMEGA8535
Như đã nói, có nhiều vi điều khiển AVR khác nhau, ngoài những tính chất chung đã nêu, mỗi loại vi điều khiển lại có những nét đặc trưng riêng Trong quá trình nghiên cứu ứng dụng, mỗi người có thể lựa chọn loại vi điều khiển phù hợp với điều kiện ứng dụng của mình Trong bài khoá luận này em sử dụng vi điều khiển ATMEGA8535 để thực hiện mục đích xây dựng hệ thống của mình “xây dựng hệ thống đo áp suất sử dụng vi điều khiển và hiển thi kết quả ra màn hình tinh thể lỏng” Vi điều khiển ATMEGA8535 được lựa chọn bởi vì nó phù hợp với
điều kiện và đáp ứng được những nhu cầu của hệ thông, nhu cầu nghiên cứu và mở rộng để tạo một hệ thống đo lường nhiều kênh, với nhiều thông số khác nhau
Một số đặc tính của vi điều khiển ATMEGA8535:
Cấu trúc tập lệnh thu gọn RISC có thể thực hiện 12 triệu lệnh một
giây với tần số thạch anh 12MHz
Có 8Kbyte bộ nhớ chương trình kiểu insystem Programmable Flash
Có 512 byte EEPROM
Có 512 byte SRAM nội
Có 32 đường vào ra có thể cấu hình riêng rẽ là lối vào hay ra
Có cổng thu phát đồng bộ vặn năng UART lập trình được
Có 8 đương ADC 10 bit, với thời gian biến đổi có thể lập trình được
Có bộ so sánh với lối vào tương tự
Có 2 bộ đếm/ định thời 8 bit
Có một bộ đếm/định thời 16 bit có thể hoạt động ở chế độ điều chế
độ rộng xung
Có bộ WatchDog timer lập trình được
Trang 23Có thể tự khởi động khi bật nguồn
Có thể xử lý ngắt với nhiều nguồn ngắt
Có nhiều chế độ hoạt động: Chế độ nghỉ, chế độ tiết kiệm năng l−ợng
Nguồn cung cấp trong khoảng 4 đến 6 V
Trang 243.1.1 CÊu h×nh ch©n
Trang 25Port B (PB0 đến BA7) Các chân này cung cấp 8 lối vào/ra hai hướng,
cũng có thể được lập trình để thực hiện một số chức năng đặc biệt khác
Port C (PC0 đến PC7) Các chân này cung cấp 8 lối vào/ra hai hướng,
cũng có thể được lập trình để thực hiện một số chức năng đặc biệt khác
Port D(PD0 đến PD7) Các chân này cung cấp 8 lối vào/ra hai hướng,
cũng có thể được lập trình để thực hiện một số chức năng đặc biệt khác
Reset Bộ vi điều khiển sẽ được đặt lại khi chân này o
mức thấp trong khoảng hơn 50 ns hoặc ngay khi không có tín hiệu dữ nhip Các xung ngắn hơn không tao ra tín hiệu đặt lại
XTAL1 Lối vào bộ khuyếch đại đảo và lối vào mạch tạo
xung bên trong
XTAL2 Lối ra bộ khuyếch đại đảo
ICP Chân vào cho chức năng bắt tín hiệu vào bộ định
thời/đếm 1
VACC Cung cấp nguồn cho bộ ADC, khi bộ ADC không
được sử dụng thì nó được nối với VCC khi ADC
được sử dụng thì ta nên kết nối nó với VCC thông qua mạch lọc thông thấp
AREF Là chân vào tham chiếu cho bộ ADC
Trang 263.1.2 Sơ đồ khối cấu trúc của vi điều khiển AVR ATMEGA8535
Sơ đồ khối cấu trúc của vi điều khiển AVR ATMEGA8535 đ−ợc đ−a
ra trên hình sau:
Trang 27đoạn có thể được dùng để hiển thị thông tin dạng chữ số Mỗi LED 7 đoạn có ít nhất 7 đường dữ liệu việc ghép nối nó với vi điều khiển tốn nhiều chân vào ra Để khắc phục điều đó có thể thực hiện việc ghép kênh, nhưng diều này lại gây ra sự phức tạp trong lập trình Không chỉ như vậy, LED 7 đoạn không thể sử dụng để hiển thị các chữ cái, để hiển thị thông tin dạng này nó phải sử dụng 16 đoạn chứ không phải 7 đoạn thông thường nữa
Bộ hiển thị ma trận DOT được xem là linh kiện tốt nhất đối với các thông tin có thể được hiên thị, bao gồm cả dạng hiển thị đồ hoạ Để đưa các bộ hiển thị DOT vào hoạt động thì biện pháp tốt nhất là sử dụng kĩ thuật dồn kênh Loại ma trận này thường được sử dụng để hiển thị các số và chữ cái kích thước lớn
Các bộ hiển thị tinh thể lỏng, thường gọi tắt là LCD (Liquid Crytal Display), với đặc điểm là tiêu thụ năng lượng rất ít nên được dùng khá phổ biến để hiển thị thông tin của người dùng và truyền thông Có nhiều loại LCD khác nhau, thường gặp nhất là loại 1x16 (một dòng với 16 kí tự chữ cái), các khuôn mẫu khác là 2x16, 1x40, 4x16… Các môđun LCD có giao diện 8 bit, bên cạnh bus dữ liệu còn có một
số đường điều khiển khác Việc truyền dữ liệu mặc định giữa modul LCD và linh kiện bên ngoài là 8 bit, tuy nhiên ta vẫn có thể tiến hành truyền thông vói modul LCD bằng cách chỉ sử dụng 4 trong số 8 đường dẫn dữ liệu Khi sử dụng 4 đường dữ liệu thì việc kết nối đơn giản hơn, tiết kiệm các chân vào ra, tuy nhiên việc này lại gay khó khăn trong việc lập trình (chương trình trở nên phức tạp hơn)
Trang 28Trong bài khoá luận này, em sử dụng bộ hiển thị LCD để hiển thị thông tin
Trang 29Chân Ký hiệu I/O Chức năng
Bảng danh sách các chân,chức năng các chân của LCD 16x2
3.3 Cảm biến ỏp suất
Cảm biến ỏp suất dựng để đo ỏp suất chất lỏng hoặc chất khớ, được sử dụng
ở nhiều nơi như cỏc hệ thống tự động kiểm soỏt ỏp suất lốp xe, thiết bị cõn xe, thiết bị dự bỏo thời tiết,
Thế giới cảm biến rất phong phú và đa dang Có nhiều loại cảm biến khác nhau nh− cảm biến nhiệt, cảm biến độ ẩm, cảm biến áp suất… Ngay cả cảm biến
áp suất cũng có nhiều loại khác nhau đ−ợc sản xuất trên các công nghệ khác nhau, các dải đo khác nhau, các hãng sản xuất khác nhau,…
3.3.1 Đại cương về ỏp suất
P = DF/DA = hw (2)
trong đú:
h = khoảng cỏch từ mặt thoỏng tới điểm đang xột
w = trọng lượng của chất lỏng (hầu hết cỏc chất lỏng khụng chịu nộn) Hỡnh 1
Trang 30Trọng lượng trên một đơn vị thể tích, V, tính bởi:
Chiều cao cột chất lỏng tính bởi:
h = P/rg (5)
Định luật ác-si-mét nói rằng “Một vật chìm toàn phần hoặc một phần trong chất lỏng hoặc khí thì bị đẩy lên với một lực tương đương trọng lượng của phần chất lỏng bị chiếm chỗ” Giả sử có một khối vật chất chìm trong thùng chất lỏng (Hình 2) có diện tích A và chiều dài L thì áp suất hướng xuống tác dụng lên bề mặt là:
Trang 31Và lực tác dụng tương đương với thể tích vật nhân với trọng lượng chất lỏng bị chiếm chỗ
Định luật Pascal nói rằng một sự gia tăng áp suất tại một điểm
bất kỳ trong chất lỏng dẫn tới sự gia tăng tương tự mọi điểm khác Định luật này được áp dụng trong các hệ thống thủy lực như kích và phanh ô-tô (xem hình 4)
b ¸p suất trong chất lỏng di chuyển
¸p suất trong một chất lỏng chuyển động tác dụng song song với hướng chuyển động và gọi là áp suất tác dụng Pi (impact pressure) Nó sinh
Trang 32Định lý Béc-nu-li nói rằng với chất lỏng nằm ngang thì:
Có thể dùng ống Pitot để đo vận tốc dòng chảy ống đối diện dòng chảy đo
áp suất tổng hợp còn ống vuông góc với dòng chảy đo áp suất tĩnh
Một vấn đề khác là đo áp suất từ xa bằng cách dùng chất đi kèm chất lỏng Phải thận trọng đẩy hết không khí ra vì tính chịu nén của nó làm hỏng tín hiệu sóng
e Đơn vị đo áp suất:
Áp suất tuyệt đối được đo so với một bình lý tưởng Thí dụ như áp suất không khí Đơn vị chung là psia (pound/inch vuông tuyệt đối)
Áp suất chênh lệch là độ lệch áp suất giữa hai điểm được đo, tính bằng psid (pound/inch vuông sai lệch)
Áp suất tiêu chuẩn được đo theo tỷ lệ với áp suất xung quanh Thí dụ như huyết áp Đơn vị đo là psig (pound/inch vuông tiêu chuẩn)
Hình 7 minh họa 3 loại đo lường áp suất Chú ý là người ta có thể dùng cùng một cảm biến để đo cả 3 loại, chỉ khác nhau ở chuẩn tham chiếu
Trang 33Như núi ở trờn, ỏp suất tớnh bằng lực tỏc dụng lờn một đơn vị
diện tớch Do lịch sử, người ta đó dựng rất nhiều đại lượng khỏc nhau để đo
ỏp suất cho phự hợp với từng ứng dụng Thớ dụ huyết ỏp thường đo bằng mmHg (milimột thủy ngõn) do ban đầu người ta dựng cột thủy ngõn để đo
ỏp suất khớ quyển cũng thường đo bằng mmHg, ngoài ra cũn dựng đơn vị bar và atm (ỏt-mốt-phe) Ta cú cỏc cụng thức chuyển đổi sau:
3.3.2 đôi nét về cảm biến ỏp suất
áp suất được cảm nhận bằng cỏc phần tử cơ khớ như tấm, vỏ hoặc ống được thiết kế và định vị để biến dạng dưới tỏc dụng của ỏp suất Đõy là
cơ chế cơ bản để chuyển đổi ỏp suất về chuyển động vật lý Sau đú, chuyển động này được chuyển thành một tớn hiệu điện hoặc đầu ra dạng khỏc Hỡnh
8 minh họa 3 khối chức năng
Ngoài ra, cỏc cảm biến cú cỏc cơ chế phỏt tớn hiệu khỏc nhau, tựy loại và tựy ứng dụng
Cỏc phần tử cảm biến
Cú cỏc loại phần tử cảm biến chớnh là (xem Hỡnh 9)
- ống Bourdon
- Màng rung
Trang 34- ống kớn
- ống giú
ống Bourdon là một ống kớn bị biến dạng dưới tỏc dụng của lực Trừ màng rung, thỡ tất cả cỏc loại cảm biến này đều cú khoảng đo khỏ lớn thớch hợp với cỏc đại lượng cơ khớ và cảm biến điện cần chuyển dịch lớn
Tuy nhiên, khi khoa học công nghệ phát triển kéo theo công nghệ sản xuất cảm biến cũng như đòi hởi cua những ứng dụng cũng đòi hỏi khắt khe hơn về độ chính xác cung như kích thước, giá thành… Và cảm biến áp suất mạch bán dẫn đã ra đời Cảm biến ỏp suất mạch bỏn dẫn đang dần thay thế cỏc thiết bị cơ điện tử trong cỏc thiết bị gia dụng như mỏy giặt, hệ thống thụng khớ, mỏy hỳt bụi
Trong nhiều năm qua cảm biến cơ điện tử là sự lựa chọn hàng đầu của cỏc nhà sản xuất cỏc thiết bị gia dụng bởi vỡ nú đó chứng tỏ được hiệu quả của mỡnh trong ứng dụng, và quan trọng hơn nú cú giỏ thành tương đối
rẻ Tuy nhiờn gần đõy nhờ những bước tiến trong cụng nghệ vi cơ điện tử (MEMS) đó tạo ra một loại cảm biến mới, cảm biến mạch bỏn dẫn, cú những đặc tớnh vượt trội: nhỏ hơn, độ tin cậy cao hơn, thụng minh hơn và
cú giỏ thành thấp hơn
* Cảm biến cơ điện tử
Cảm biến cơ điện tử hoạt động dựa trờn nguyờn tắc rất đơn giản
Nú gồm cú lớp màng và cơ cấu 2 lũ xo đúng, mở khi cú một lực đủ mạnh tỏc động lờn Một mặt của lớp màng này tiếp xỳc với mụi trường ỏp suất, mặt cũn lại gắn với lũ xo Khi ỏp suất tỏc dụng lờn màng một lực, lực này truyền đến lũ xo, khi mạnh sẽ làm cho lũ xo tiếp xỳc với nhau
* Cảm biến mạch bỏn dẫn
Cảm biến mạch bỏn dẫn cũng cú nguyờn tắc đo giống như cảm biến cơ điện tử Tuy nhiờn sự khỏc nhau nằm ở cấu tạo Cảm biến cơ điện