Nếu một thiết b ngày xưa để hoạt động chúng ta phải tiếp xúc và điều chỉnh trực tiếp tại bộ phận điều khiển của thiết b , thì ngày nay chúng ta chỉ cần ngồi một ch và dùng máy tính cùng
Trang 1
Người hướng dẫn : ThS PHẠM MINH THỦY
Người thực hiện : TỪ BẢO LONG
Lớp : 10040002
Khoá : 14
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2015
Trang 2trường Đại học Tôn Đức Thắng nói chung và các Thầy Cô giáo trong khoa Điện tử Viễn Thông nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh
nghiệm quý báu trong suốt thời gian qua
Đặc biệt em xin gửi lời cảm ơn đến Thầy ThS PHẠM MINH THỦY, Thầy đã
tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm Đồ án tốt nghiệp Trong thời gian làm việc với Thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu học hỏi nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này
Sau cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên, đóng góp ý kiến và giúp đỡ em trong quá trình học tâp, nghiên cứu và hoàn thành Đồ án tốt nghiệp
Trang 3Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng
dẫn tận tình của Thầy ThS PHẠM MINH THỦY Các nội dung nghiên cứu, kết quả
trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong luận văn còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm
về nội dung luận văn của mình Trường đại học Tôn Đức Thắng không liên quan đến
những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hồ Chí Minh, ngày tháng năm 2015
Tác giả
TỪ BẢO LONG
Trang 5Họ tên sinh viên:
Lớp: MSSV:
Tên đề tài:
GV HƯỚNG DẪN
Trang 6Nếu một thiết b ngày xưa để hoạt động chúng ta phải tiếp xúc và điều chỉnh trực tiếp tại bộ phận điều khiển của thiết b , thì ngày nay chúng ta chỉ cần ngồi một ch
và dùng máy tính cùng bộ phát sóng R để điều khiển, thu thập dữ liệu nhiệt độ một cách d dàng không còn là một điều xa lạ hay khó khăn nữa
Các bộ điều khiển từ xa như remote tivi hay remote máy điều hòa nhiệt độ đều dùng hồng ngoại và vấn đề ở đây chính là khoảng cách truyền thẳng trong phạm vi vài mét và tốc độ truyền không cao vậy để thu thập được dữ liệu nhiệt độ tốt hơn, tốc
độ xử lý nhanh hơn ta cần có một thiết b điều khiển phù hợp cho mục đích và yêu cầu cao hơn
Điều khiển các node trong mô hình ở khoảng cách xa không vật cản thì việc đó thực hiện một cách d dàng với sóng R Với yêu cầu đòi hỏi không quá cao thì Module NR là một Module sóng R với tần số sóng ngắn GHz có thể đáp ứng Module có ứng dụng để truyền nhận dữ liệu theo hai hướng trên một đường truyền còn được gọi là đường truyền song công
Để giải quyết vấn đề trên, em cần nghiên cứu và thực hiện những nội dung sau:
- Tìm hiểu về công nghệ điều khiển từ xa thông qua sóng R
- Tạo một giao diện điều khiển b ng Visual asic
- Thiết kế mạch giao tiếp máy tính và phát sóng R
- Thiết kế mạch điều khiển thiết b và thu sóng R
- Thi công phần cứng bao gồm các node thu thập dữ liệu nhiệt độ theo yêu cầu của mô hình
Trang 7LỜI NÓI ĐẦU V DANH MỤC CÁC HÌNH VẼ VIII DANH MỤC CÁC BẢNG BIỂU IX DANH MỤC CÁC TỪ VIẾT TẮT X
CHƯƠNG 1: GIỚI THIỆU VỀ ĐỀ TÀI 1
Mục đích, ý nghĩa, sơ đồ hệ thống 1
Phương pháp và nội dung thực hiện 2
3 Kế hoạch thời gian thực hiện 2
CHƯƠNG 2: GIỚI THIỆU VỀ MẠNG CẢM BIẾN KHÔNG DÂY 3
2.1 Sơ lược mạng cảm biến không dây 3
Cấu trúc mạng cảm biến không dây 4
CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG 5
3.1 Module thu và phát sóng RF: NRF24L01 5
3 Giới thiệu module NR 5
3 Tính năng các chân của Module NR 6
3 Vi điều khiển PIC 6 877A 8
3 Giới thiệu về PIC 6 877A 8
3.2 Giao tiếp nối tiếp trong PIC 16F877A 10
3 USART bất đồng bộ 11
3 Truyền dữ liệu qua chuẩn giao tiếp USART bất đồng bộ 11
3 .3 Nhận dữ liệu qua chuẩn giao tiếp USART bất đồng bộ 13
3 Chuẩn truyền thông SPI 16
3 .5 SPI trong vi điều khiển PIC 19
3.3 Giới thiệu về M35 21
3 Cổng COM và chuẩn giao tiếp 21
3.4 Cổng COM 21
3.4.2 Thông số của chuẩn RS 3 22
3.5 Thiết kế bộ thu, phát sóng R và giao tiếp máy tính.(sink node) 25
3.6 Thiết kế bộ thu, phát sóng RF (node 1) 28
Trang 8CHƯƠNG 5: KẾT QUẢ THI CÔNG 34
5.1 Sản phẩm hoàn thiện .35
5.1 Mạch thực tế của bộ thu, phát sóng RF 35
5 ưu đồ giải thuật 36
CHƯƠNG 6: KẾT LUẬN 40
6 Kết luận .40
6 Kinh nghiệm .40
6.3 Hướng phát triển đề tài 40
TÀI LIỆU THAM KHẢO 41
Trang 9Hình 2.1 Cấu trúc cơ bản của mạng cảm biến không dây 4
Hình 3.1 Module nRF24l01 6
Hình 3 SPI đọc dữ liệu 7
Hình 3.3 SPI ghi dữ liệu 7
Hình 3.4 PIC 16F877A 9
Hình 3.5 Sơ đồ khối chức năng cơ bản của PIC 16F877A .10
Hình 3.6 Sơ đồ khối của khối truyền dữ liệu USART .12
Hình 3.7 Sơ đồ khối của khối nhận dữ liệu USART .14
Hình 3.8 Giao diện SPI .16
Hình 3.9 Truyền dữ liệu SPI .18
Hình 3 Module đo nhiệt độ 21
Hình 3.11 Module giao tiếp máy tính P 3 3 23
Hình 3 Mạch nguyên lý bộ thu, phát sóng R và giao tiếp máy tính sink node 25
Hình 3 3 Đóng khung dữ liệu trong chuẩn USART bất đồng bộ .26
Hình 3 Mạch in bộ thu, phát sóng R và giao tiếp máy tính sink node .27
Hình 3 5 Mạch nguyên lý bộ thu, phát sóng RF node 1 .28
Hình 3 6 Mạch in bộ thu, phát sóng RF node 1 29
Hình 4.1 Giao diện V 6 khi khởi động .31
Hình 4.2 Cửa sổ lập trình của V 6 .31
Hình 4.3 Mô hình bố trí hệ thống .32
Hình 5.1 Mạch thực tế bộ thu, phát sóng R và giao tiếp máy tính sink node .33
Hình 5 Mạch thực tế bộ thu, phát sóng node 1 34
Hình 5.3 ưu đồ giải thuật máy tính truyền, nhận dữ liệu từ PIC 35
Hình 5.4 ưu đồ giải thuật PIC (bộ phát) truyền dữ liệu .36
Hình 5.5 ưu đồ giải thuật PIC (bộ thu) nhận dữ liệu .37
Trang 10ảng 3 ảng mã ASCII những kí tự được sử dụng 26
Trang 11CREN Continuous Receive Enable bit
FIFO First in first out
ICSP In-system programming
ICSP In-system programming
MSSP Master Synchronous Serial Port
PIC Programmable Intelligent Computer
PSPIE Parallel Slave Port Read/Write Interrupt Enable
PWM Pulse Width Modulation
RCSTA RECEIVE STATUS AND CONTROL REGISTER
RISC Reduced Instructions Set Computer
RSR Receive Shift Register
SCI Serial Communication Interface
SPI Serial Peripheral Interface
SSPBUF Synchronous Serial Port Receive Buffer
SSPIF Software Support Production Integration Facility
TSR The shift register
USART Universal Synchronous Asynchronous Receiver Transmitter USB Universal Serial Bus
Trang 12CHƯƠNG 1: GIỚI THIỆU VỀ ĐỀ TÀI
1.1 Mục đích, ý nghĩa, sơ đồ hệ thống
- Tên đề tài: Xây dựng mô hình thực nghiệm wireless multi-hop
- Mục đích của đề tài là xây dựng một mô hình thực nghiệm thu nhận dữ liệu nhiệt
độ trong môi trường thông qua sóng R mà các node được thiết kế thực tế trong khuôn viên trường đại học Tôn Đức Thắng
- Ý nghĩa của đề tài: Việc ứng dụng các kiến thức đã học và mong muốn tạo ra một sản phẩm phục vụ cho nhu cầu của người sử dụng là vấn đề đáng được quan tâm của một k sư điện - điện tử Tìm hiểu về giao tiếp với máy tính để điều khiển thiết
b qua sóng R với vấn đề trên cũng chính là đề tài nghiên cứu của em
- Ứng dụng, đóng góp của đề tài: Cảnh báo cháy cho các hệ thống nhà máy, xí nghiệp hay chung cư, ngôi nhà thông minh, thăm dò những khu vực nguy hiểm, điều khiển giám sát hệ thống sản xuất từ xa,…
Sơ đồ hệ thống thực hiện như sau:
Hình 1.1 Mô hình hệ thống
Trang 131.2 Phương pháp và nội dung thực hiện
- Tìm hiểu về công nghệ điều khiển từ xa thông qua sóng R
- Tìm hiểu phương thức giao tiếp máy tính
- Tìm hiểu viết code cho chương trình hoạt động
- Thiết kế mạch giao tiếp máy tính và thu phát sóng RF
- Thiết kế mạch xử lý nhiệt độ và thu, phát sóng RF
- Tạo một giao diện điều khiển b ng Visual asic
1.3 Kế hoạch thời gian thực hiện
- Từ lúc nhận Đồ Án Tốt Nghiệp đến lúc bảo vệ 5 % (ngày 20/04/2015): Thực hiện xong việc tìm hiểu lý thuyết, tạo giao diện giao tiếp máy tính trên V 6 Hoàn tất
mô hình node thu phát tín hiệu
- Sau khi bảo vệ 50% đến lúc phản biện: Hoàn tất việc thi công mô hình thực nghiệm 3 node thu thập dữ liệu theo yêu cầu của đề tài wireless multi-hop đã đặt ra
Trang 14CHƯƠNG 2: GIỚI THIỆU VỀ MẠNG CẢM BIẾN KHÔNG DÂY
(WIRELESS SENSOR NETWORK)
2.1 Mạng cảm biến không dây.[1]
Mạng cảm biến không dây (Wireless Sensor Network) bao gồm một tập hợp các thiết b cảm biến sử dụng các liên kết không dây (vô tuyến, hồng ngoại hoặc quang học) để phối hợp thực hiện nhiệm vụ thu thập thông tin dữ liệu phân tán với quy mô lớn trong bất kỳ điều kiện và ở bất kỳ vùng đ a lý nào Mạng cảm biến không dây có thể liên kết trực tiếp với nút quản lý giám sát trực tiếp hay gián tiếp thông qua một điểm thu phát (Sink) và môi trường mạng công cộng như Internet hay vệ tinh
Các nút cảm biến không dây có thể được triển khai cho các mục đích chuyên dụng như điều khiển giám sát và an ninh; kiểm tra môi trường; tạo ra không gian sống thông minh; khảo sát đánh giá chính xác trong nông nghiệp; trong lĩnh vực y tế;
ợi thế chủ yếu của chúng là khả năng triển khai hầu như trong bất kì loại hình
đ a lý nào kể cả các môi trường nguy hiểm không thể sử dụng mạng cảm biến có Các thiết b cảm biến không dây liên kết thành một mạng đã tạo ra nhiều khả năng mới cho con người Các đầu đo với bộ vi xử lý và các thiết b vô tuyến rất nhỏ gọn tạo nên một thiết b cảm biến không dây có kích thước rất nhỏ, tiết kiệm về không gian Chúng có thể hoạt động trong môi trường dày đặc với khả năng xử lý tốc độ cao Ngày nay, các mạng cảm biến không dây được ứng dụng trong nhiều lĩnh vực như nghiên cứu vi sinh vật biển, giám sát việc chuyên chở các chất gây ô nhi m, kiểm tra giám sát hệ sinh thái và môi trường sinh vật phức tạp, điều khiển giám sát trong công nghiệp và trong lĩnh vực quân sự, an ninh quốc phòng hay các ứng dụng trong đời sống hàng ngày
Trang 152.2 Cấu trúc của mạng cảm biến không dây
Một mạng cảm biến không dây bao gồm số lượng lớn các nút được triển khai dày đặc bên trong hoặc ở rất gần đối tượng cần thăm dò, thu thập thông tin dữ liệu
V trí các cảm biến không cần đ nh trước vì vậy nó cho phép triển khai ngẫu nhiên trong các vùng không thể tiếp cận hoặc các khu vực nguy hiểm Khả năng tự tổ chức mạng và cộng tác làm việc của các cảm biến không dây là những đặc trưng rất cơ bản của mạng này
Với số lượng lớn các cảm biến không dây được triển khai gần nhau thì truyền thông đa liên kết được lựa chọn để công suất tiêu thụ là nhỏ nhất (so với truyền thông đơn liên kết) và mang lại hiệu quả truyền tín hiệu tốt hơn so với truyền khoảng cách xa
Hình 2.1 Cấu trúc cơ bản của mạng cảm biến không dây
Trang 16CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG
3.1 Module thu và phát sóng RF: NRF24L01 [2]
3.1.1 Giới thiệu module NRF24L01
NRF24L01 Module là board mạch thiết kế cho giải pháp truyền dữ liệu không
dây, sử dụng chip thế hệ mới nhất NRF24L01+ của hãng Nordic's, bổ sung thêm một
số pipelines, buffers, và an auto-retransmit feature, băng tần GHz, sử dụng giao thức SPI để giao tiếp
Module này rất lý tưởng cho: wireless multi-hop, wireless data transmission, multicast, and frequency-hopping communication
Tính năng của NR bao gồm:
+ Có bộ lọc nhi u tại đầu thu
+ Khuếch đại b ảnh hưởng bởi nhi u thấp
Nguồn cấp
+ Hoạt động từ ,3 V đến 3,6 V điện áp hoạt động tốt nhất là 3.3 V
+ Các chân IO đều hoạt động ở mức điện áp 3.3 V hoặc 5 V đều được
Trang 17 Giao tiếp
+ 4 chân SPI
+ Tốc độ tối đa là 8 Mbps
+ 3-3 bytes trên khung truyền nhận
Module NR hoạt động ở tần số sóng ngắn GHz nên nó có khả năng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường có vật cản Module NR có 6 kênh truyền Điều này giúp ta có thể truyền nhận dữ liệu trên nhiều kênh khác nhau Module khả năng thay đổi công suất phát b ng chương trình, điều này giúp nó có thể hoạt động trong chế độ tiết kiệm năng lượng
3.1.2 Tính năng các chân của Module NRF24L01
+ Chân số 5: SCK (Serial Clock) Xung Clock để đưa dữ liệu ứng với m i xung
Trang 18+ Chân số 6: MOSI Master Output Slave Input ữ liệu được đưa qua chân này tới Slave
+ Chân số 7: MISO Master Input Slave Output dữ liệu nối tiếp được truyền từ Slave qua chân này tới Master
+ Chân số 8: IRQ Interrupt Request yêu cầu ngắt Radio điều khiển chân này về mức thấp để kích hoạt ngắt
Hoạt động SPI
Hình 3 2 SPI đọc d liệu
Hình 3 3 SPI ghi d liệu
Để gửi hay nhận dữ liệu qua giao tiếp SPI: Chân CSN của module phải ở mức thấp để bắt đầu tiến hành giao tiếp Sau đó đặt chân CSN lên mức cao để cho quá trình truyền nhận dữ liệu kết thúc
Trang 193.2 Vi điều khiển PIC 16F877A [3]
3.2.1 Giới thiệu về PIC 16F877A
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology PIC bắt nguồn từ chữ viết tắt Programable Intelligent Computer , có thể tạm d ch là máy tính thông minh khả trình do hãng General Instrument đặt tên cho vi điều khiển đầu tiên của họ PIC 65 được thiết kế để dùng làm các thiết b ngoại vi cho vi điều khiển CP 6 Vi điều khiển này sau đó được nghiên cứu phát triển thêm
và từ đó hình thành nên dòng vi điều khiển PIC ngày nay
Đây là vi điều khiển thuộc họ PIC 6 xxx với tập lệnh gồm 35 lệnh có độ dài bit M i lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là ns ộ nhớ chương trình 8 Kx14 bit, bộ nhớ dữ liệu 368×8 byte RAM và bộ nhớ dữ liệu PROM với dung lượng 56×8 byte
Số PORT I O là 5 với 33 pin I/O
PIC 6 877A là dòng pic phổ biến hiện nay, đủ mạnh về tính năng, chân , bộ nhớ đủ cho hầu hết các ứng dụng thông thường cấu trúc tổng quát của PIC16F877A như sau:
- 8k flash ROM
- 368 byte RAM
- 256 byte EFROM
- 5 port(A, B, C, D, ) vào ra với tín hiệu điều khiển độc lập
- bộ đ nh thời 8 bit (timer 0 và timer 2)
- Một bộ đ nh thời 6 bit (timer ) có thể hoạt động trong chế độ tiết kiệm năng lượng (sleep mode) với nguồn xung clock ngoài
Trang 20- cổng song song 8 bits với các tín hiệu điều khiển
- cổng nối tiếp
- 5 nguồn ngắt
- Có chế độ tiết kiệm năng lượng
- Nạp chương trình b ng cổng nối tiếp ICSP
- Được chế tạo b ng công nghệ CMOS
- 35 tập lệnh
- Tần số hoạt động tối đa MHz
Hình 3.4 Pic 16F877A
Trang 21Hình 3.5 Sơ đồ khối chức năng cơ bản của PIC 16F877A
3.2.2 Giao tiếp nối tiếp trong PIC 16F877A
USART (Universal Synchronous Asynchronous Receiver Transmitter) là một trong hai chuẩn giao tiếp nối tiếp.USART còn gọi là giao diện giao tiếp nối tiếp SCI (Serial Communication Interface) với các thiết ngoại vi, với các thiết b điều khiển hay máy tính Các dạng USART ngoại vi bao gồm:
Trang 22+ RC6 TX CK : dùng để truyền xung clock(baud rate)
Các thanh ghi liên quan đến RG bao gồm:
+ TXSTA(đ a chỉ 98h) chọn chế độ đồng bộ hay bất đồng bộ(bit SYNC) và chọn mức tốc độ baud(bit RGH)
+ RCSTA(đ a chỉ 8h) cho phép hoạt động cổng nối tiếp(bit SP N)
+ RS RG(đ a chỉ 99h) quyết đ nh tốc độ baud
3.2.2.1 USART bất đồng bộ
Ở chế độ này các bit truyền đi sẽ bao gồm bit Start 8 bit dữ liệu và bit Stop
it S sẽ được truyền đi trước Các khối truyền và nhận ata độc lập với nhau sẽ dùng chung tần số tương ứng với tốc độ baud cho quá trình dữ liệu
Để đảm bảo tính hiệu quả của dữ liệu thì hai khối truyền và nhận phải cùng chung một đ nh dạng dữ liệu
3.2.2.2 Truyền d liệu qua chuẩn giao tiếp USART bất đồng bộ
Thanh ghi TSR(Transmit Shif Register), thanh ghi TSR sẽ lấy dữ liệu từ thanh ghi đệm dùng cho quá trình là TXR G
ữ liệu cần truyền phải được đưa trước vào thanh ghi TXR G, ngay sau khi bit Stop của dữ liệu cần truyền trước đó truyền xong, dữ liệu từ thanh ghi TXR G sẽ được đưa vào thanh ghi TSR, thanh ghi TXR G b r ng, ngắt xảy ra và cờ hiệu TXI vẫn sẽ được set bit bất chấp trạng thái của bit TXI hay tác động của chương trình (không thể xóa TXI b ng chương trình) mà chỉ reset về khi có dữ liệu được đưa vào thanh ghi TXREG
Trang 23Hình 3.6 Sơ đồ khối của khối truyền d liệu USART
Cờ hiệu TXI đóng vai trò chỉ trạng thái thanh ghi TXR G thì cờ hiệu TRMT có nhiệm vụ thể hiện trạng thái thanh ghi TSR Khi thanh ghi TSR r ng, bit TRMT sẽ được set lên it này chỉ đọc và không có ngắt nào được gắn với trạng thái của nó Thanh ghi TSR không có bộ nhớ dữ liệu và chỉ điều khiển b ng CPU
Khối dữ liệu truyền được phép hoạt động khi bit TX N được set Quá trình truyền dữ liệu bắt đầu khi có dữ liệu trong thanh ghi TXR G và xung truyền baud được tạo ra Khi khối dữ liệu truyền được khởi động lần đầu tiên, thanh ghi TSR r ng, tại thời điểm đó dữ liệu đưa vào thanh ghi TXR G ngay lập tức được load và thanh ghi TSR và thanh ghi TXR G b r ng, lúc này ta có thể hình thành một chu i dữ liệu liên tục cho quá trình truyền dữ liệu
Trong khi quá trình truyền nếu bit TX N b reset về quá trình sẽ kết thúc, khối truyền dữ liệu sẽ được reset lại trạng thái và chân RC6/TX CK chuyển đến trạng thái Hight_Impedance Trong trường hợp dữ liệu cần truyền 9 bit, bit TX9 (TXSTA<6>) được set và bit dữ liệu thứ 9 sẽ được lưu trong bit TX9 Nên ghi bit dữ liệu thứ 9 vào trước vì khi ghi 8 bit dữ liệu vào thanh ghi TXR G có thể xảy ra trường hợp nội dung
Trang 24thanh ghi TXR G sẽ được load vào thanh ghi TSR trước như vậy dữ liệu truyền sẽ b sai so với yêu cầu
Tóm lại để truyền dữ liệu theo giao diện USART bất đồng bộ, ta cần thực hiện tuần tự các bước sau:
+ Tạo xung truyền baud b ng cách đưa các giá tr cần thiết vào thanh ghi RS RG
và các bit điều khiển mức tốc độ baud RGH
+ Cho phép cổng giao diện nối tiếp bất đồng bộ b ng cách clear SYNC và set bit SPEN
+ Set bit TXI nếu cần thiết
+ Set bit TX9 nếu đ nh dạng dữ liệu cần truyền là 9 bit
+ Set bit TX N để cho phép truyền dữ liệu(lúc này bit TXI cũng sẽ được set) + Nếu đ nh dạng dữ liệu là 9 bit, đưa bit dữ liệu thứ 9 vào bit TX9 )
+ Đưa 8 bit dữ liệu cần truyền vào thanh ghi TXR G
+ Nếu sử dụng ngắt, cần kiểm tra lại các bit GI và P I ( thanh ghi INTCON) Thanh ghi INTCON có đ a chỉ h, 8Bh, 10Bh, 8 h chứa các bit cho phép toàn
bộ ngắt
Thanh ghi PIR có đ a chỉ Ch chứa cờ hiệu TXI
Thanh ghi PI có đ a chỉ 8Ch chứa các bit cho phép ngắt TXI
Thanh ghi RCSTA có đ a chỉ 8h xác đ nh trạng thái trong quá trình truyền dữ liệu (hai chân RC6/TX/CK và RC7/RX/DT)
Thanh ghi TXR G có đ a chỉ 9h chứa dữ liệu cần truyền
Thanh ghi TXSTA có đ a chỉ 98h chứa các bit điều khiển SYNC và RGH
Thanh ghi SP RG có đ a chỉ 99h điều khiển tốc độ baud
3.2.2.3 Nhận d liệu qua chuẩn giao tiếp USART bất đồng bộ
ữ liệu được đưa vào từ chân RC7 RX T sẽ kích hoạt khối khôi phục dữ liệu Khối phục hồi dữ liệu là một bộ d ch dữ liệu tốc độ cao và tần số hoạt động gấp 6 lần
Trang 25hoặc 6 lần tần số baud Trong khi đó tốc độ d ch của thanh ghi nhận dữ liệu sẽ b ng với tần số baud hoặc với tần số Oscillator
Hình 3.7 Sơ đồ khối của khối nhận d liệu USART
it điều khiển cho phép khối dữ liệu là bit CREN (RCSTA<4)
Thành phần quan trọng nhất của khối dữ liệu là thanh ghi nhận dữ liệu RSR (Receive Shift Register) Sau khi nhận diện bit Stop của dữ liệu truyền tới, dữ liệu nhận được trong thanh ghi RSR sẽ được đưa vào thanh ghi RCR G, sau đó cờ hiệu RCIF sẽ được set và ngắt nhận được kích hoạt Ngắt này được điều khiển bởi bit RCI it cờ hiệu RCI là bit chỉ đọc và không thể tác động bởi chương trình RCI chỉ reset về khi dữ liệu nhận vào ở thanh ghi RCR G đã được đọc và khi đó thanh ghi RCR G r ng Thanh ghi RCR G là thanh ghi có bộ đệm kép(double-buffered register) và hoạt động theo cơ chế I O( irst In irst Out) cho phép nhận byte và byte thứ 3 tiếp tục đưa vào thanh ghi RSR, nếu sau khi nhận được bit Stop của byte dữ liệu thứ 3 mà thanh ghi RCR G vẫn còn đầy, cờ hiệu báo tràn dữ liệu O RR sẽ được
Trang 26set, dữ liệu thanh ghi RSR sẽ b mất đi và quá trình đưa dữ liệu từ thanh ghi RSR vào thanh ghi RCR G sẽ b gián đoạn
Trong trường hợp này cần lấy hết dữ liệu ở thanh ghi RCR G vào trước khi tiếp tục nhận byte dữ liệu tiếp theo it O RR phải được xóa b ng phần mềm và được thực hiện b ng cách clear bit CR N rồi set lại it RR sẽ được set khi phát hiện bit Stop
dữ liệu được nhận vào , bit dữ liệu thứ 9 sẽ được đưa vào RX9 Khi đọc dữ liệu từ thanh ghi RCR G, hai bit RR và RX9 sẽ nhận được giá tr mới o đó cần đọc dữ liệu từ thanh ghi RCSTA trước khi đọc dữ liệu từ thanh ghi RCR G để tránh mất dữ liệu
Tóm lại để nhận dữ liệu theo giao diện USART bất đồng bộ, ta cần thực hiện tuần
tự các bước sau:
+ Thiết lập tốc độ baud, đưa giá tr thích hợp vào thanh ghi SP RG và bit RGH + Cho phép cổng giao tiếp USART bất đồng bộ clear bit SYNC và set bit SP N + Nếu cần sử dụng ngắt nhận dữ liệu, set bit RCI
+ Nếu dữ liệu truyền nhận có đ nh dạng là 9 bit, set bit RX9
+ Cho phép nhận dữ liệu b ng cách set bit CR N
+ Sau khi dữ liệu được nhận, bit RCI sẽ được set và ngắt kích hoạt(nếu bit RCI được set)
+ Đọc giá tr thanh ghi RCSTA để đọc dữ liệu thứ 9 và kiểm tra xem quá trình nhận dữ liệu có b l i không
+ Đọc 8 bit dữ liệu từ thanh ghi RCR G
+ Nếu quá trình truyền nhận có l i xảy ra, xóa l i b ng cách xáo bit CR N
+ Nếu sử dụng ngắt nhận cần set bit GI và PEIE trong thanh ghi INTCON Thanh ghi INTCON có đ a chỉ h,8 h, h, 8 h chứa các bit cho phép toàn
bộ ngắt (bit GI và PEIE)
Thanh ghi PIR có đ a chỉ Ch chứa cờ hiệu RCI