hiểu sâu hơn về vi điều khiển, các linh kiện điện tử và có thêm kinh nghiệm thao tácvới mạch điện.Giới hạn nghiên cứu Do điều kiện thời gian có hạn, kinh phí eo hẹp và năng lực còn hạn c
Trang 1MỤC LỤC
LỜI MỞ ĐẦU 2
LỜI CAM ĐOAN 3
GIỚI THIỆU ĐỀ TÀI 4
CHƯƠNG 1.CƠ SỞ LÝ THUYẾT 6
1.1 Giới thiệu về vi điều khiển họ 8051 6
1.1.1.Giới thiệu chung: 6 1.1.2 Các chân của vi điều khiển 8051: 7 1.1.3 Cấu trúc các port xuất nhập vi điều khiển 8051: 14 1.2 Giao tiếp cổng nối tiếp 17
1.3 Giới thiệu các linh kiện sử dụng trong mạch 35
CHƯƠNG 2 PHÂN TÍCH HỆ THỐNG 45
2.1 Yêu cầu bài toán 45
2.2 Sơ đồ khối: 45
2.3 Phân tích mô hình hệ thống 45
2.4 Khung truyền dữ liệu 46
2.5 Thuật toán điều khiển 46
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG 50
3.1 Thiết kế phần cứng 50
3.1.1 Khối tạo xung dao động 50
3.1.2.Mạch giao tiếp RS232: 50
3.1.3.Mạch kết nối vi điều khiển với led 7 thanh: 51
3.2.Hệ thống trên máy tính 55
KẾT LUẬN VÀ HƯỚNG PHẤT TRIỂN 57
TÀI LIỆU THAM KHẢO……… 59
Trang 2LỜI MỞ ĐẦU
Trong lĩnh vực kỹ thuật ngày nay thì lĩnh vực điện tử đóng vai trò vô cùng quantrọng trong thời đại công nghiệp hoá, hiện đại hoá đất nước.Nói đến lĩnh vực điện tửthì chúng ta không thể không nhắc đến ngành kỹ thuật điện tử - vi điện tử.Đó là chiếcchìa khoá vàng mở ra một kỷ nguyên mới - kỷ nguyên của ngành công nghệ thông tin Tuy chỉ mới thâm nhập vào nước ta gần đây nhưng công nghệ thông tin đã pháttriễn rất nhanh và ngày càng giữ vai trò quan trọng trong nền công nghiệp hoá nướcnhà.Với sự phát triển nhanh chóng của ngành công nghệ thông tin và những lợi íchthấy rõ thì việc điều khiển các thiết bị thông qua máy tính đóng vai trò quan trọngtrong cuộc công nghiệp hoá Lấy ví dụ trong các ngân hàng làm việc về tiền tệ thì tỷgiá của các đồng tiền trên thế giới luôn có sự biến động thay đổi.Nên để niêm yết tỷgiá được nhanh chóng, thường xuyên thì họ sử dụng các bảng hiển thị để niêm tỷ giákết nối với máy tính,và có thể thay đổi tỷ giá từ máy tính của ngân hàng Xuất phát từthực tiễn này, em đã quyết định chọn đề tài: “Thiết kế hệ thống bảng hiển thị tỷ giángân hàng” Đây chỉ là một trong rất nhiều các ứng dụng của việc giao tiếp giữa máytính với các thiết bị sử dụng vi điều khiển và sử dụng máy tính để điều khiển các thiết
bị đó.Nhưng nó là cơ sở để có thể phát triển trong các hệ thống lớn khác
Em xin được cảm ơn thầy giáo Lê Hùng Linh,người đã hướng dẫn nhiệt tình cho
em trong quá trình từ ý tưởng trở thành sản phẩm như hiện nay
Do giới hạn về thời gian cũng như kiến thức, quy mô trong bài báo cáo nên nộidung còn nhiều thiếu sót.Rất mong sự đóng góp ý kiến của quý thầy cô và các bạnsinh viên để bài báo cáo được hoàn thiện hơn
Xin chân thành cảm ơn!
Trang 3GIỚI THIỆU ĐỀ TÀI Đặt vấn đề
Với sự phát triển mạnh mẽ về khoa học kỹ thuật trong những thập niên gần đâyngành công nghệ thông tin đã tạo ra bước ngoặt quan trọng trong việc đáp ứngnhưng nhu cầu của con người Hiện nay ứng dụng của công nghệ thông tin đã trởnên gần gũi và quen thuộc với con người hơn, và có lẽ đó là một phần thiết yếu củacuộc sống Với sự phát triển của khoa học kỹ thuật, nhu cầu ngày càng cao của đờisống nhân dân, các sản phẩm ngày càng phải tân tiến hơn để đáp ứng những nhu cầutrên Xuất phát từ thực tế nói trên, cùng với các kiến thức đã học tập được ở nhàtrường và kế thừa những kinh nghiệm và thành tựu của các anh chị sinh viên khóatrước, nên em xin chọn đề tài “Hệ thống hiển thị tỷ giá ngân hàng trên” sử dụng viđiều khiển họ 8051
Lý do chọn đề tài
Hiện nay, đất nước ta đang trong giai đoạn phát triển mạnh mẽ, nền kinh tế ngàycàng phát triển.Các hoạt động phát triển kinh tế của cá nhân và tập thể cũng pháttriển rất nhanh.Để phục vụ cho việc phát triển kinh tế các ngân hàng xuất hiện rấtnhiều hoạt động trong lĩnh vực tiền tệ , hỗ trợ về vốn cho các cá nhân tập thể trongviệc kinh doanh.Không chỉ là các hoạt động kinh doanh, buôn bán trong nước màcòn các hoạt động kinh doanh hợp tác đầu tư quốc tế.Vì thế các ngân hàng luôn cậpnhật tỷ giá của đồng tiền trong nước với các nước khác để phục vụ cho việc trao đổitiền tệ,kinh doanh với nước ngoài.Để phục vụ cho việc cập nhật tỷ giá được dễ dànghơn thì các hệ thống bảng hiển thị tỷ giá kết nối với hệ thống máy tính của ngânhàng có tác dụng rất lớn
Mục đích nghiên cứu
Mục đích của đề tài là thiết kế một sản phẩm giúp cho việc cập nhật tỷ giá giữacác đồng tiền trên thế giới hoặc hiển thị số trên bảng hiển thị tùy ý theo mục đích.Khi thực hiện đề tài này sinh viên có khả năng vận dụng các kiến thức đã học và tìm
Trang 4hiểu sâu hơn về vi điều khiển, các linh kiện điện tử và có thêm kinh nghiệm thao tácvới mạch điện.
Giới hạn nghiên cứu
Do điều kiện thời gian có hạn, kinh phí eo hẹp và năng lực còn hạn chế nên trongphạm vi của để tài em chỉ có thể trình bày nội dung như sau: Sử dụng vi điều khiểnAT89C52 làm trung tâm điều khiển, kết hợp với một số linh kiện khác để máy tính
và vi điều khiển có thể giao tiếp với nhau,truyền nhận dữ liệu hiển thị lên led 7thanh
Ý nghĩa khoa học và thực tiễn của đề tài
Đề tài này thực hiện nhằm mục đích giúp sinh viên tim hiểu về kỹ thuật lập trình
vi điều khiển, nghiên cứu sâu hơn về các thiết kế phần cứng Về mặt ý nghĩa thựctiễn, đề tài này có thể mở rộng theo nhiều hướng nghiên cứu khác nhau nhằm đápứng nhu cầu khác nhau
Phương pháp nghiên cứu và phương tiện nghiên cứu
Phương pháp nghiên cứu chủ yếu là tham khảo tài liệu: chủ yếu là các tài liệu về
vi điều khiển, vi xử lý, điện tử số… Ngoài ra còn tham khảo trên một số trang web
và diễn đàn
Phương tiện nghiên cứu:chủ yếu là sách giáo khoa, giáo trình và máy tính
Trang 5CHƯƠNG 1.CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu về vi điều khiển họ 8051
Với mục đích chủ yếu là tìm hiểu về họ vi điều khiển 8051 (MSC-51)nên em xintrình bày một số nội dung về họ vi điều khiển này
1.1.1 Giới thiệu chung:
MCS-51 là họ vi điều khiển của hãng Intel Vi mạch tổng quát của họ MCS-51 làchip 8051
Chip 8051 có một số đặc trưng cơ bản sau:
Bộ nhớ chương trình bên trong: 4 KB (ROM)
Bộ nhớ dữ liệu bên trong: 128 byte (RAM)
Bộ nhớ chương trình bên ngoài: 64 KB (ROM)
Bộ nhớ dữ liệu bên ngoài: 64 KB (RAM)
4 port xuất nhập (I/O port) 8 bit
2 bộ định thời 16 bit
Mạch giao tiếp nối tiếp
Bộ xử lý bit (thao tác trên các bit riêng lẻ)
210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit
Nhân / Chia trong 4 µs
Ngoài ra, trong họ MCS-51 còn có một số chip vi điều khiển khác có cấu trúctương đương như sau:
Trang 61.1.2 Các chân của vi điều khiển 8051:
Sơ đồ khối và chức năng các khối của vi điều khiển 8051:
Sơ đồ khối vi điều khiển 8051
- CPU (Central Processing Unit): Đơn vị xử lý trung tâm tính toán và điều khiển quátrình hoạt động của hệ thống
- OSC (Oscillator): Mạch dao động tạo tín hiệu xung clock cung cấp cho các khốitrong chip hoạt động
- Interrupt control: Điều khiển ngắt nhận tín hiệu ngắt từ bên ngoài (INT0\, INT1\), từ
bộ định thời (Timer 0, Timer 1) và từ cổng nối tiếp (Serial port), lần luợt đua các tínhiệu ngắt này đến CPU để xử lý
- Other registers: Các thanh ghi khác Lưu trữ dữ liệu của các port xuất/nhập, trạngthái làm việc của các khối trong chip trong suốt quá trình hoạt động của hệ thống
- RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip lưu trữ các dữ liệu
- ROM (Read Only Memory): Bộ nhớ chương trình trong chip lưu trữ chương trìnhhoạt động của chip
- I/O ports (In/Out ports): Các port xuất/nhập điều khiển việc xuất nhập dữ liệu duới
Trang 7dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.
- Serial port: Port nối tiếp điều khiển việc xuất nhập dữ liệu duới dạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD, RxD
- Timer 0, Timer 1: Bộ định thời 0, 1 dùng để định thời gian hoặc đếm sự kiện (đếm xung) thông qua các chân T0, T1
- Bus control: Điều khiển bus điều khiển hoạt động của hệ thống bus và việc dichuyển
thông tin trên hệ thống bus
- Bus system: Hệ thống bus liên kết các khối trong chip lại với nhau
Sơ đồ chân và chức năng các chân của vi điều khiển 8051:
Sơ đồ chân của vi điều khiển 8051
a Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39
- Port 0 có hai chức năng:
Port xuất nhập dữ liệu (P0.0 - P0.7) không sử dụng bộ nhớ ngoài
Trang 8 Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) có sử dụng bộ nhớ ngoài
Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trởkéo lên bên ngoài
- Ở chế độ mặc định (khi reset) thì các chân Port 0 (P0.0 - P0.7) được cấu hình làport xuất dữ liệu Muốn các chân Port 0 làm port nhập dữ liệu thì cần phải lập trìnhlại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầunhập dữ liệu từ port (vấn đề này được trình bày ở phần kế tiếp)
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ liệu(D0 – D7)
b Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8
- Port 1 có một chức năng:
Port xuất nhập dữ liệu (P1.0 – P1.7) sử dụng hoặc không sử dụng bộ nhớ ngoài
- Ở chế độ mặc định (khi reset) thì các chân Port 1 (P1.0 – P1.7) được cấu hình làport xuất
dữ liệu Muốn các chân Port 1 làm port nhập dữ liệu thì cần phải lập trình lại, bằngcách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập dữliệu từ port (vấn đề này được trình bày ở phần kế tiếp)
- Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ bytethấp (A0 – A7)
c Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28
- Port 2 có hai chức năng:
Port xuất nhập dữ liệu (P2.0 – P2.7) không sử dụng bộ nhớ ngoài
Trang 9 Bus địa chỉ byte cao (A8 – A15) có sử dụng bộ nhớ ngoài
- Ở chế độ mặc định (khi reset) thì các chân Port 2 (P2.0 – P2.7) được cấu hình là portxuất dữ liệu Muốn các chân Port 2 làm port nhập dữ liệu thì cần phải lập trình lại,bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập
dữ liệu từ port (vấn đề này được trình bày ở phần kế tiếp)
- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của địa chỉ bytecao (A8 – A11) và các tín hiệu điều khiển
d Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17
- Port 3 có hai chức năng:
Port xuất nhập dữ liệu (P3.0 – P3.7) không sử dụng bộ nhớ ngoài hoặc cácchức năng đặc biệt
Các tín hiệu điều khiển có sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt
- Ở chế độ mặc định (khi reset) thì các chân Port 3 (P3.0 – P3.7) được cấu hình làport xuất
dữ liệu Muốn các chân Port 3 làm port nhập dữ liệu thì cần phải lập trình lại, bằngcách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập dữliệu từ port (vấn đề này được trình bày ở phần kế tiếp)
- Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của các tín hiệuđiều khiển (xem sách “Họ vi điều khiển 8051” trang 333-352)
Trang 10- Chức năng của các chân Port 3:
Bit Tên Địa chỉ bit Chức năng
P3.0 RxD B0H Chân nhận dữ liệu của port nối
tiếp
P3.1 TxD B1H Chân phát dữ liệu của port nối tiếp
P3.2 INT0\ B2H Ngõ vào ngắt ngoài 0
P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1
P3.4 T0 B4H Ngõ vào của bộ định thời/đếm 0
P3.5 T1 B5H Ngõ vào của bộ định thời/đếm 1
P3.6 WR\ B6H ðiều khiển ghi vào RAM ngoài
P3.7 RD\ B7H điều khiển đọc từ RAM ngoài
PSEN\ = 0 trong thời gian CPU tìm - nạp lệnh từ ROM ngoài
PSEN\ = 1 CPU sử dụng ROM trong (không sử dụng ROM ngoài)
- Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chânOE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài
Trang 11byte thấp và bus dữ liệu đa hợp (AD0 – AD7).
Là tín hiệu xuất, tích cực mức cao
ALE = 0 trong thời gian bus AD0 - AD7 đóng vai trò là bus D0 - D7.
ALE = 1 trong thời gian bus AD0 - AD7 đóng vai trò là bus A0 - A7
- Khi lập trình cho ROM trong chip thì chân ALE đóng vai trò là ngõ vào của xunglập trình (PGM\)
Lưu ý: fALE=fOSC/6 có thể dùng làm xung clock cho các mạch khác
(MHz): tần số xung tại chân ALE f
(MHz): tần số dao động trên chip (tần số thạch anh)
- Khi lệnh lấy dữ liệu từ RAM ngoài (MOVX) được thực hiện thì một xung ALE bị
EA\ = 0 Chip 8051 sử dụng chương trình của ROM ngoài
EA\ = 1 Chip 8051 sử dụng chương trình của ROM trong
- Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áplập trình(Vpp = 12V – 12,5V cho họ 89xx; 21V cho họ 80xx, 87xx)
Lưu ý: Chân EA\ phải được nối lên Vcc (nếu sử dụng chương trình của ROM trong)hoặc nối xuống GND (nếu sử dụng chương trình của ROM ngoài), không bao giờđược phép bỏ trống chân này
h.Chân XTAL1, XTAL2:
Trang 12- XTAL (Crystal): tinh thể thạch anh, chân số 18-19
- Chức năng:
Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài,cung cấp tín hiệu xung clock cho chip hoạt động
XTAL1 ngõ vào mạch tạo xung clock trong chip
XTAL2 ngõ ra mạch tạo xung clock trong chip.
Lưu ý: fTYP=12MHz fTYP (MHz): tần số danh định
RST = 0 Chip 8051 hoạt động bình thường
RST = 1 Chip 8051 được thiết lặp lại trạng thái ban đầu
Lưu ý: tReset≥2×TMachine TMachine=12/fOSC
Trang 13Khả năng fanout (số luợng tải đầu ra) của các từng chân port chip 8051 là:
Khi Port 0 đóng vai trò là port xuất nhập thì sẽ không có điện trở kéo lên bên trong
do đó nguời sử dụng cần thêm vào điện trở kéo lên bên ngoài (xem Hình III.1)
Trang 14Ở chế độ mặc định (khi reset) thì tất cả các chân của các port (P0 – P3) đuợc cấuhình là port xuất dữ liệu
Muốn các chân port của chip 8015 làm port nhập dữ liệu thì ta cần phải đuợc lậptrình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit (các chân) của porttruớc khi bắt đầu nhập dữ liệu từ port (vấn đề này đuợc trình bày ở phần kế tiếp).Các chân trong cùng một port không nhất thiết phải có cùng kiểu cấu hình (portxuất hoặc port nhập).Nghĩa là trong cùng một port có thể có chân dùng để nhập dữliệu, có thể có chân dùng để xuất dữ liệu.Điều này là tùy thuộc vào nhu cầu và mụcđích của nguời lập trình
Quá trình ghi chân port (xuất dữ liệu ra chân port)
Thao tác ghi chân port.
Trang 15Quá trình đọc chân port (nhập dữ liệu từ chân port).
Thao tác đọc chân port
Quá trình đọc bộ chốt (kiểm tra dữ liệu tại chân port)
Thao tác đọc bộ chốt Lưu ý: Việc đọc dữ liệu của bất kỳ một port nào có thể cho ta hai giá trị khác nhau
tùy thuộc vào lệnh mà ta sử dụng để đọc dữ liệu từ port (xem thêm trong phần tậplệnh) Xảy ra hiện tượng không mong muốn này là do quá trình đọc dữ liệu của chip
8051 gồm hai quá trình khác nhau: quá trình đọc chân port và quá trình đọc bộ chốt Quá trình đọc chân port: Khi ta sử dụng các lệnh MOV, ADD,…Dữ liệu nhậnđuợc sau khi thực hiện quá trình đọc là dữ liệu hiện tại ở các chân port
Trang 16Quá trình đọc bộ chốt: Khi ta sử dụng các lệnh ANL, ORL, XRL, CPL, INC,DEC, DJNZ, JBC, CLR bit, SETB bit, MOV bit.Dữ liệu nhận được sau khi thực hiệnquá trình đọc là dữ liệu hiện tại ở các bộ chốt (là các dữ liệu đã được ghi ra port tạithời điểm truớc đó bởi quá trình ghi chân port), chứ không phải là dữ liệu hiện tại ởcác chân port.Cho nên, nếu tại thời điểm thực hiện quá trình đọc mà dữ liệu tại cácchân port có bị thay đổi đi chăng nữa thì dữ liệu đọc về cũng không được cập nhật.
1.2 Giao tiếp cổng nối tiếp
1.2.1 Cấu trúc cổng nối tiếp
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, cócác ưu điểm sau:
- Khoảng cách truyền xa hơn truyền song song
- Số dây kết nối ít
- Có thể truyền không dây dùng hồng ngoại
- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device)
- Cho phép nối mạng
- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc
- Có thể cung cấp nguồn cho các mạch điện đơn giản
Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE (Data Communication Equipment) DCE là các thiết bị trung gian như MODEM cònDTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển,…Việc trao đổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền).Các tínhiệu còn lại có chức năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi
là các tín hiệu bắt tay (handshake).Ưu điểm của quá trình truyền dùng tín hiệu bắt tay
là có thể kiểm soát đường truyền
Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations).Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark),mức
Trang 17logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10
mA đến 20 mA.Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20000 bps nhưng nếu cáptruyền đủ ngắn có thể lên đến 115200 bps
Các phương thức nối giữa DTE và DCE:
- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng
- Bán song công (half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm chỉđược truyền theo 1 hướng
- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng
Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:
Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V).Khibắt đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0đến D7 và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đườngtruyền Dạng tín hiệu truyền mô tả như sau (truyền ký tự A):
Trang 18Tín hiệu truyền của ký tự ‘A’
Các đặc tính kỹ thuật của chuẩn RS-232 như sau:
Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps,
9600 bps và 19200 bps
Sơ đồ chân:
như sau:
Chiều dài cable cực đại 15mTốc độ dữ liệu cực đại 20 KbpsĐiện áp ngõ ra cực đại ± 25VĐiện áp ngõ ra có tải ± 5V đến ±
Trang 19D25 D9 Tín
hiệu
Trang 201 - - - Protected ground: nối đất bảo vệ
2 3 TxD DTE->DCE Transmitted data: dữ liệu truyền
3 2 RxD DCE->DTE Received data: dữ liệu nhận
4 7 RTS DTE->DCE Request to send: DTE yêu cầu truyền dữ
liệu
5 8 CTS DCE->DTE Clear to send: DCE sẵn sàng nhận dữ liệu
6 6 DSR DCE->DTE Data set ready: DCE sẵn sàng làm việc
22 9 RI DCE->DTE Ring indicator: báo chuông
23 - DSRD DCE->DTE Data signal rate detector: dò tốc độ truyền
24 - TSET DTE->DCE Transmit Signal Element Timing: tín hiệu
định thời truyền đi từ DTE
15 - TSET DCE->DTE Transmitter Signal Element Timing: tín
hiệu định thời truyền từ DCE để truyền dữ liệu
17 - RSET DCE->DTE Receiver Signal Element Timing: tín hiệu
định thời truyền từ DCE để truyền dữ liệu
21 - RL DCE->DTE Remote Loopback: Tạo ra bởi DCE khi tín
hiệu nhận từ DCE lỗi
14 - STxD DTE->DCE Secondary Transmitted Data
16 - SRxD DCE->DTE Secondary Received Data
19 - SRTS DTE->DCE Secondary Request To Send
Trang 2113 - SCTS DCE->DTE Secondary Clear To Send
12 - SDSRD DCE ->DTE Secondary Received Line Signal Detector
1.2.2 Truyền thông giữa hai nút
Các sơ đồ khi kết nối dùng cổng nối tiếp:
Kết nối đơn giản trong truyền thông nối tiếp
Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và thu giống nhau Khi có dữ liệu đến DTE,dữ liệu này sẽ được đưa vào bộ đệm và tạongắt
Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:
Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay
Trang 22Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực tác động lên DSR của DTE2 tác động lên DSR của DTE2 cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM(ảo) Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biếtDTE1 có thể nhận dữ liệu.Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyềnkhác nhau nên phải thực hiện điều khiển lưu lượng Quá trinh điều khiển này có thểthực hiện bằng phần mềm hay phần cứng.Quá trình điều khiển bằng phần mềm thựchiện bằng hai ký tự Xon và Xoff Ký tự Xon được DCE gởi đi khi rảnh ( có thể nhận
dữ liệu ) Nếu DCE bận thì sẽ gởi ký tự Xoff Quá trình điều khiển bằng phần cứngdùng hai chân RTS và CTS Nếu DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầutruyền, DCE nếu có khả năng nhận dữ liệu (đang rảnh) thì gởi lại CTS
1.2.3 Truy xuất trực tiếp thông qua cổng
Các cổng nối tiếp trong máy tính được đánh số là COM1, COM2, COM3, COM4với các địa chỉ như sau:
Offse
t
0 0 W THR Transmitter Holding Register (đệm truyền)
0 R RBR Receiver Buffer Register (đệm thu)
1 R/W BRDL Baud Rate Divisor Latch (số chia byte thấp)
1 0 R/W IER Interrupt Enable Register (cho phép ngắt) Số
1 R/W BRDH chia byte cao
Tên Địa chỉ Ngắt Vị trí chứa địa chỉ
Trang 232 R IIR Interrupt Identification Register (nhận dạng ngắt)
W FCR FIFO Control Register
3 R/W LCR Line Control Register (điều khiển đường dây)
4 R/W MCR Modem Control Register (điều khiển MODEM)
5 R LSR Line Status Register (trạng thái đường dây)
6 R MSR Modem Status Register (trạng thái MODEM)
7 R/W Scratch Register (thanh ghi tạm)
Các thanh ghi này có thể truy xuất trực tiếp kết hợp với địa chỉ cổng (ví dụ nhưthanh ghi cho phép ngắt của COM1 có địa chỉ là BACOM1 + 1 = 3F9h
IIR (Interrupt Identification):
IIR xác định mức ưu tiên và nguồn gốc của yêu cầu ngắt mà UART đang chờ phụcvụ.Khi cần xử lý ngắt, CPU thực hiện đọc các bit tương ứng để xác định nguồn gốc của ngắt Định dạng của IIR như sau:
D7 D6 D5 D4 D3 D2 D1 D000: Không
có FIFO
11: Cho
phép FIFO
Cho phép FIFO 64 byte (trong 16750)
- 1: Ngắt
time-out(trong 16550)
Xác định nguồn gốc ngắt
0: Có ngắt1: Không ngắt
D2D1Ưu tiênTênNguồnD2-D0 bị xóa khi004Đường truyềnLỗi khung, thu đè, lỗi
parity, gián đoạn khi thuĐọc LSR013Đệm thuĐệm thu đầyĐọc RBR102Đệm phátĐệm phát rỗngĐọc IIR, ghi THR111ModermCTS, DSR, RI, RLSDĐọc MSR(Mức 1 ưu tiên
cao nhất)
Trang 24IER (Interrupt Enable Register):
IER cho phép hay cấm các nguyên nhân ngắt khác nhau (1: cho phép, 0: cầm ngắt) D7 D6 D5 D4 D3 D2 D1 D0
- - POW HBR MODEM LINE TxEMPTY RxRDY
MCR (Modem Control register):
D7 D6 D5 D4 D3 D2 D1 D0
2
OUT1RTS DTR
MSR (Modem Status Register):
D7 D6 D5 D4 D3 D2 D1 D0
RLSD RI DSR CTS
RLSD
RI
DSR
CTS
LSR (Line Status Register):
Cho phép khi THR rỗng
Cho phép khi RBR đầy
Điều khiển tín hiệu RTS và DTR
Trạng thái của CD,
RI, DSR và CTS
1: nếu có thay đổi các tín hiệu so với lần đọc trước RI:= 1 nếu có xung dương tại RI
Trang 25D7 D6 D5 D4 D3 D2 D1 D0
FIE: FIFO Error - sai trong FIFO
TSRE: Transmitter Shift Register Empty - thanh ghi dịch rỗng (=1 khi đã phát 1
ký tự và bị xoá khi có 1 ký tự chuyển đến từ THR
THRE: Transmitter Holding Register Empty (=1 khi có 1 ký tự đã chuyển từ THR-TSR và bị xoá khi CPU đưa ký tự tới THR)
BI: Break Interrupt (=1 khicó sự gián đoạn khi truyền, nghĩa là tồn tại mức logic 0trong khoảng thời gian dài hơn khoảng thời gian truyền 1 byte và bị xoá khi CPU đọcLSR)
FE: Frame Error (=1 khi có lỗi khung truyền và bị xoá khi CPU đọc LSR)
PE: Parity Error (=1 khi có lỗi parity và bị xoá khi CPU đọc LSR)
OE: Overrun Error (=1 khi có lỗi thu đè, nghĩa là CPU không đọc kịp dữ liệu làmcho quá trình ghi chồng lên RBR xảy ra và bị xoá khi CPU đọc LSR)
RxDR: Receiver Data Ready (=1 khi đã nhận 1 ký tự và đưa vào RBR và bị xoákhi CPU đọc RBR)
LCR (Line Control Register):
Trang 26Một số giá trị thông dụng xác định tốc độ truyền cho như sau:
WLS (Word Length Select):
WLS1 WLS0 Độ dài dữ liệu
Trang 271 0 7 bit
1.2.4 Giao tiếp với vi điều khiển
Khi thực hiện giao tiếp với vi điều khiển, ta phải dùng thêm mạch chuyển mứclogic từ TTL -> 232 và ngược lại Các vi mạch thường sử dụng là MAX232 củaMaxim hay DS275 của Dallas Mạch chuyển mức logic mô tả như sau:
Mạch chuyển mức logic TTL ↔ RS232
Tuy nhiên, khi sử dụng mạch chuyển mức logic dùng các vi mạch thì đòi hỏi phải dùng chung GND giữa máy tính và vi mạch -> có khả năng làm hỏng cổng nối tiếpkhi xảy ra hiện tượng chập mạch ở mạch ngoài Do đó, ta có thể dùng thêm opto4N35 để cách ly về điện Sơ đồ mạch cách ly mô tả như sau:
Trang 28Mạch chuyển mức logic TTL ↔ RS232 cách ly
Trang 29Khi giao tiếp , vi điều khiển chính là một DTE nên sẽ nối RxD của máy tính với TxD của vi điếu khiển và ngược lại Mạch kết nối đơn giản giữa vi điều khiển và máy tính như sau: