MỤC LỤCLời nói đầu1Phần 1:Giới thiệu vi điều khiển 80513I.Giới thiệu chung về vi điều khiển 80513 1.Tóm tắt về lịch sử của 8051.32.Bộ ví điều khiển 805143. Các thành viên khác của họ 80515II.Cấu tạo vi điều khiển 8051.61.Tóm tăt phần cứng họ MSC51(8051)62.Cấu trúc vi điều khiển 8051,chức năng từng chân.73.Tổ Chức Bộ Nhớ10Phần II : Giao Tiếp Máy Tính với vi điều khiển 8051.16Giới Thiệu Các Phương Pháp Giao Tiếp Máy Tính16I.Giao Tiếp Bằng Slot Card16II. Giao Tiếp Bằng Cổng Song Song16III.Giao Tiếp Bằng Cổng Nối Tiếp181.Giới thiệu về RS232212.Giới thiệu về MAX232333.Thiết kế phần cứng.36IV.Truyền Dữ Liệu381.Thông tin số liệu382. Phương thức truyền383.Thông Tin Nối Tiếp Bất Đồng Bộ.404.Thông tin nối tiếp đồng bộ.445.Lập trình cho vi điều khiển.45kết luận52Tài liệu tham khảo54
Trang 1Lời nói đầu
Ngày nay, các ứng dụng công nghệ thông tin đã đợc áp dụng trong mọilĩnh vực nghiên cứu khoa học kỹ thuật cũng nh trong đời sống, máy tính trởtrành công cụ trợ giúp đắc lực cho con ngời trong lu trữ, phân tích và xử lýthông tin.Nó đóng vai trò quan trọng, là nhân tố quyết định sự tồn tại vàphát triển của xã hội Tin học làm giảm lao động bằng sức lực, tiết kiệmthời gian, thuận tiện hơn cho công việc của con ngời Đặc biệt là thu hẹpkhoảng cách không gian giữa con ngời với con ngời và môi trờng xungquanh.Nớc ta cùng với sự phát triển chung của nền kinh tế ,khoa học kỹthuật tin học đang ngày càng đợc ứng dụng rộng rãi trong công tác quảnlý,phân tích và xử lý thông tin và từng bớc khẳng định sức mạnh cũng nh vịtrí quan trọng của mình và đang đợc áp dụng trong nhiều lĩnh vực Tuynhiên đối với mỗi lĩnh vực, mỗi công việc lại có những đặc điểm riêng, cónhững yêu cầu về xử lý thông tin khác nhau và đòi hỏi cần phải có nhữngphần mềm riêng
ứng dụng tin học vào việc giao tiếp với các vi xử lý ,vi mạch để pháthiện các hiện tợng trong cuộc sống.Với Đề tài: Tìm hiểu về giao tiếp máy
tính với kit vi điều khiển 8051.Đây là loại vi điều khiển thờng dùng để
giao tiếp với những thiết bị bên ngoài.Vi mạch này có khả năng giao tiếp rấtrộng,vừa có thể xuất dữ liệu, vừa có thể nhận dữ liệu tùy theo ngời lập trình
điều khiển bằng cách thay đổi thông số của thanh ghi điều khiển
Do còn nhiều hạn chế về mặt thời gian cũng nh kiến thức và kinhnghiệm nên chúng em không thể tránh khỏi những khiếm khuyết và sai sótcũng nh cha hiểu rõ về vi điều khiển 8051 Chúng em rất mong đợc sự đónggóp ý kiến của thầy cô trong khoa để đề tài này đợc hoàn thiện hơn.Chúng
em xin bày tỏ lòng biết ơn đến thầy giáo,Thạc Sĩ Nguyễn Đình
Thuận_Giảng viên Trờng Học Viện Kỹ Thuật Quân Sự đã tận tình hớng
dẫn để nhóm em hoàn thành đề tài này
Trang 2MụC LụC
Lời nói đầu 1
Phần 1:Giới thiệu vi điều khiển 8051 3
I.Giới thiệu chung về vi điều khiển 8051 3
1.Tóm tắt về lịch sử của 8051 3
RAM 4
2.Bộ ví điều khiển 8051 4
3 Các thành viên khác của họ 8051 4
Chân vào - ra 5
II.Cấu tạo vi điều khiển 8051 5
1.Tóm tăt phần cứng họ MSC-51(8051) 5
2.Cấu trúc vi điều khiển 8051,chức năng từng chân 6
3.Tổ Chức Bộ Nhớ 10
Phần II : Giao Tiếp Máy Tính với vi điều khiển 8051 15
Giới Thiệu Các Phơng Pháp Giao Tiếp Máy Tính 15
I.Giao Tiếp Bằng Slot Card 15
II Giao Tiếp Bằng Cổng Song Song 16
III.Giao Tiếp Bằng Cổng Nối Tiếp 17
1.Giới thiệu về RS232 20
2.Giới thiệu về MAX232 29
3.Thiết kế phần cứng 33
IV.Truyền Dữ Liệu 37
1.Thông tin số liệu 37
2 Phơng thức truyền 37
3.Thông Tin Nối Tiếp Bất Đồng Bộ 38
4.Thông tin nối tiếp đồng bộ 41
5.Lập trình cho vi điều khiển 42
Kết luận 48
Tài liệu tham khảo 49
Trang 3Phần 1:Giới thiệu vi điều khiển 8051
I.Giới thiệu chung về vi điều khiển 8051
1.Tóm tắt về lịch sử của 8051.
Vào năm 1981 Hãng Intel giới thiệu một số bộ vi điều khiển đợc gọi
là 8051 Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp,hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra tất cả
Bảng 1.1: Địa chỉ của một số hãng sản xuất các thành viên của họ
www.semiconductors.philips.comwww.sci.siemens.com
là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung lơng nhớROM trên chíp, nhng tất cả chúng đều tơng thích với 8051 ban đầu về cáclệnh Điều này có nghĩa là nếu ta viết chơng trình của mình cho một phiênbản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà khôngphân biệt nó từ hãng sản xuất nào
Bảng 1.2: Các đặc tính của 8051 đầu tiên.
Trang 4định thời Nó cũng có 8K byte ROM Trên chíp thay vì 4K byte nh 8051.Xem bảng 1.4
Bảng1.4: so sánh các đặc tính của các thành viên họ 8051.
INTERRU
PT CONTROL
4 I/O PORTS
BUS CONTRO L
SERIAL PORT
EXTERNAL
INTERRUPTS
CP U
ON - CHIP RAM
ETC TIMER 0 TIMER 1
ADDRESS/DA TA
TXD RX D
P 0
P 1
P 2 P 3
Trang 5ta có thể bổ xung cổng vào - ra cho 8031 Phối phép 8031 với bộ nhớ vàcổng vào - ra chẳng hạn với chíp 8255 đợc trình bày ở chơng 14 Ngoài racòn có các phiên bản khác nhau về tốc độ của 8031 từ các hãng sản xuấtkhác nhau.
II.Cấu tạo vi điều khiển 8051.
8051 lại chính là đại diện tiêu biểu
Các đặc điểm của 8051 đợc tóm tắt nh sau:
• 4KB ROM bên trong
• 128 byte RAM nội
• 4 Port xuất/nhập I/O 8 bit
Trang 6• Giao tiếp nối tiếp
• 64KB vùng nhớ mã ngoài
• 64KB vùng nhớ dữ liệu ngoài
• Xử lý Boolean(hoạt động trên bit đơn)
• 201 vị trí nhớ có thể định vị bit
• 4 cho hoạt động nhân hoặc chia
Bảng mô tả sự khác nhau của các IC trong họ MCS-51
Loại Bộ nhớ mã trên CHIP Bộ nhớ dữ liệu trên CHIP Số Timer
Trang 7Chức năng hoạt động của từng chân(pin)đợc tóm tắt nh sau:
Từ chân 1-8 Port (P1.0,…,P1.7)dùng làm Port xuất/nhập O/I đểgiao tiếp bên ngoài
Chân 9(RST) là chân để RESET cho 8051.Bình thờng các chânnày ở mức thấp,khi ta đa tín hiệu này lên cao(tối thiẻu 2 chu kỳmáy).Thì những thanh ghi nội của 8051 đợc LOAD những giá trịthích hợp để khởi động lại hệ thống
Từ chân 10-17 là Port (P3.0,P.1,…P3.7) dùng vào hai mục
đích:dùng là Port xuất/nhập I/O hoặc mỗi chân giữ một chức năngcá biệt đợc tóm tắt sơ bộ nh sau:
• P3.0 (RXD) : Nhập dữ liệu từ Port nối tiếp
• P3.1 (TXD) : Phát dữ liệu từ Port nối tiếp
• P3.2 (INTO) : Ngắt 0 bên ngoài
Trang 8 Chân 20 (Vss) nối đất (Vss = 0).
Từ chân 21- 28 là Port 2(P2.0,P2.1,…,P2.7) dùng vào hai mục
đích:làm Port xuất/nhập I/O hoặc dùng làm byte cao của bus
địa chỉ thì nó không còn tác dụng I/O nữa.Bởi vì ta muốn dùngEPROM và RAM ngoài nên phải sử dụng Port 2 làm byte caobus địa chỉ
Chân 29 (PSEN) là tín hiệu điều khiển xuất ra của 8051,nó chophép chọn bộ nhớ ngoài và đợc nối chung với chân củaOE(Outout Enable) của EPROM ngoài để cho phép đọc cácbyte của chơng trình.Các xung tín hiệu PSEN hạ thấp trongsuốt thời gian thi hành lệnh.Những mã nhị phân của chơngtrình đợc đọc từ EPROM đi qua bus dữ liệu và đợc chốt vàothanh ghi lệnh của 8051 bởi mã lệnh
Chân 30 (ALE:Adress Latch Enable) là tín hiệu điều khiểnxuất ra của 8051,nó cho phép phân kênh bus địa chỉ và dũ liệucủa Port 0
Chân 31 ( EA:Eternal Acess) đợc đa xuống thấp cho phépchọn bộ nhỡ mã ngoài đối với 8031
Đối với 8051 thì:
• EA = 5V : Chọn ROM nội
• EA = 0V : Chọn ROM ngoại
• EA = 21V : Lập trình EPROM nội
Trang 9 Các chân từ 32-39 là Port 0 (P0.0,P0.1,…,P0.7) dùng cả haimục đích:Vừa làm byte thấp cho bus địa chỉ,vừa làm bus dữliệu,nếu vậy Port 0 không còn chức năng xuất nhập I/O nữa.
Chân 40 (Vcc) đợc nối lên nguồn 5V
Trang 103.Tổ Chức Bộ Nhớ
Bản đồ bộ nhớ data trên Chip nh sau:
a.RAM mục đích chung
Trong bản đồ bộ nhớ trên, 80 byte từ địa chỉ 30H – 7FH là RAMmục đích chung.Kể cả 32 byte phần dới từ 00H – 2FH cũng có thể sửdụng giống nh 80 byte ở trên,tuy nhiên 32 byte còn có mục đích khác sẽ đềcập sau:
Bất kỳ vị trí nào trong RAM mục đích chung cũng có thể đợc truyxuất tùy ý giống nh việc sử dụng các mode để định địa chỉ trực tiếp haygián tiếp.Ví dụ để đọc nội dung của RAM nội có địa chỉ 5FH vào thanh ghitích lũy thì ta dùng lệnh: MOV A,5FH
Trang 11RAM nội cũng đợc truy xuất bởi việc dùng địa chỉ gián tiếp qua RO
và R1.Hai lệnh sau đây sẽ tơng đơng lệnh trên:
MOV R0,#5FH
MOV A, @R0
Lệnh thứ nhất dùng sự định vị tức thời để đa giá trị 5FH vào thanhghi R0 lệnh thứ hai dùng sự định vị gián tiếp để đa dữ liệu đã đợc trỏ đếnbởi R0 vào thanh ghi tích lũy A
b.RAM Định Vị
8051 chứa 210 vị trí có thể định vị bit,trong đó 128 bit nằm ở các địachỉ từ 20H – 2FH và phần còn lại là các thanh ghi chức năng đặc biệt
Các băng thanh ghi (Register Banks)
32 vị trí nhớ cuối cùng của bộ nhớ từ địa chỉ byte 00H – 1FH chứa cácdãy thanh ghi.Tập hợp các lệnh của 8051 cung cấp 8 thanh ghi từ R0 –R7 ở địa chỉ 00H – 07H nếu máy tính mặc nhiên chọn để thựcthi.Những lệnh tơng đơng dùng sự định vị trực tiếp những giá trị dữ liệu
đợc dùng thờng xuyên chắc chắn sẽ sử dụng một trong các thanh ghi này
Các thanh ghi chức năng đặc biệt (Special Function Register)
Có 21 thanh ghi chức năng đặc biệt SFR ở đỉnh của RAM nội từ địa chỉcác thanh ghi chức năng đặc biệt đợc định rõ,còn phần còn lại không
định rõ
Mặc dù thanh ghi A có thể truy xuất trực tiếp,nhng hầu hết các thanhghi chức năng đặc biệt truy xuất bằng cách sử dụng sự định vị địa chỉtrực tiếp.Chú ý rằng vài thanh ghi SER có cả bit định vị và byte địnhvị.Ngời thiết kế sẽ cẩn thận khi truy xuất bit mà không truy xuất byte
Từ trạng thái chơng trình (PSW: Program Status Word):
Từ trạng thái chơng trình ở địa chỉ D0H đợc tóm tắt nh sau:
Trang 12BIT SYMBOL ADDRESS DESCRIPTION
PSW.7 CY D7H Cary Flag
PSW.6 AC D6H Auxliary Cary Flag
PSW.5 F0 D5H Flag 0
PSW.4 RS1 D4H Register Bank Select 1
PSW 3 RS0 D3H Register Bank Select 0
Cờ Carry CY(Carry Flag):
Cờ Carry đợc set lên 1 nếu có sự tràn ở bit 7 trong phép cộng hoặc có sự
m-ợn vào bit 7 trong phép trừ
Cờ Carry cũng là 1 “thanh ghi tich lũy luận lý”,nó đợc dùng nh một thanhghi 1 bit thực thi trên các bit bởi những lệnh luận lý.Ví dụ lệnh: ANLC,25H
sẽ AND bit 25H với cờ Carry và cất kết quả vào cờ Carry
Cờ Carry phụ AC (Auxiliary Carry Flag):
Khi cộng những giá trị BCD(Binảy Code Decimal),cờ nhớ phụ AC đợc sétnếu có sự tràn từ bit 3 sang 4 hoặc 4 bit thấp nằm trong phạm vi AH –0FH
Cờ 0(Flag 0):
Cờ 0 (FO) là bit cờ có mục đích tổng hợp cho phép ngời ứng dụng dùng nó
Những bit chọn dãy thanh ghi RS1 và RS0:
RS1 và RS0 quyết định dãy thanh ghi tích cực,chúng đợc xóa sau khi reset
hệ thống và đợc thay đổi bởi phần mềm khi cần thiết
Cờ tràn OV(Over Flag):
Cờ tràn đợc set sau một hoạt động cộng hoặc trừ nếu có sự tràn toàn học, bit
OV đợc bỏ qua đối với sự cộng trừ không dấu Khi cộng trừ có dấu, kết quảlớn hơn + 127 hay nhỏ hơn - 128 sẽ set bit OV
Bit Parity(P)
Bit tự động đợc set hay Clear ở mỗi chu kỳ máy để lập Parity chẳn vớithanh ghi A.Sự đếm các bit trong một thanh ghi A cộng với bit Parity luôn
Trang 13luôn chẵn Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1trong A và P tạo thành số chẳn.
Bit Parity thờng đợc dùng trong sự kết hợp với những thủ tục của Port nốitiếp để tạo ra bit Parity trớc khi phát đi hoặc kiểm tra bit Parity sau khi thu
Con trỏ Stack SP( Stack Pinter)
Stack Pointer là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉcủa dữ liệu đang hiện hành trên đỉnh Stack, các hoạt động của Stackbao gồm việc đẩy dữ liệu vào Stack (PUSH) và lấy dữ liệu ra khỏiStack(POP)
Việc PUSH vào Stack sẽ tăng SP lên 1 trớc khi dữ liệu vào
Việc POP từ Stack ra sẽ lấy dữ liệu ra trớc rồi giảm SP đi 1
Con trỏ dữ liệu DPTR (Data Pointer)
Data Pointer đợc để truy xuất bộ nhớ mà ngoài hoặc bộ nhớ dữ liệungoài,nó là một thanh ghi 16 bit mà byte thấp là DPL ở địa chỉ 82H cònbyte cao là DPH ở địa chỉ 83H Để đa nội dung 55H vào RAM ngoại có
địa chỉ 1000H ta dùng 3 lệnh sau:
MOV A, #55HMOV DPTR, #1000HMOVX @ DPTR, ALệnh thứ nhất dùng sự định vị trực tiếp đa hằng số dữ liệu 55H vào
A Lệnh thứ hai cũng tơng tự lệnh thứ nhất đa hằng số dữ liệu 1000Hvào trong DPTR , lệnh cuối cùng dùng sự định vị gián tiếp để dịchchuyển giá trị 55H trong A vào vùng nhớ RAM ngoại 1000H ngoại1000H nằm trong DPTR
Các thanh ghi Port(Port Register):
C ác Port 0, Port 1, Port 2, Port 3, có địa chỉ tơng ứng 80H, 90H,A0H, B0H Các Port 0, Port 1, Port 2, Port 3 không còn tác dụng xuấtnhập nữa nếu bộ nhớ ngoài đợc dùng hoặc một vài cá tính đặc biệt
Trang 14của 8051 đợc dùng nh Interrupt, Port nối tiếp….Do vậy chỉ còn cóPort có tác dụng xuất nhập I/O.
Tất cả các Port đều có địa chỉ,do đó nó có khả năng giao tiếpvới bên ngoài mạnh mẽ
Các thanh ghi Timer( Timer Register)
8051 có 2 bộ: Một bộ Timer 16 bit và một bộ Counter 16 bit, hai bộ nàydùng để định giờ lúc nghỉ của chơng trình hoặc đếm các sự kiện quantrọng Timer 0 có bít thấp TL0 ở địa chỉ 8AH và có bít cao TH0 ở địa chỉ8CH.Timer 1 có bit thấp ở địa chỉ 8BH và bit cao TH1 ở địa chỉ 8DH Hoạt động định thời đợc cho phép bởi thanh ghi mode định thời TMOD(Timer Mode Register) ở địa chỉ 89H và thanh ghi điều khiển định thờiTCON (Timer Control Register) ở địa chỉ 88H.Chỉ có TCON có bit địnhvị
Các thanh ghi Port nối tiếp ( Serial Port Register)
8051 chứa một Port nối tiếp trên Chip cho việc truyền thông tin vớinhững thiết bị nối tiếp nh là những thiết bị đầu cuối, modem, hoặc đểgiao tiếp IC khác với những bộ biến đổi A/D, những thanh ghi dichuyển, RAM ….Thanh ghi đệm dữ liệu nối tiếp SBUF ở địa chỉ 99H giữcả dữ liệu phát lẫn dữ liệu thu.Việc ghi lên SBUF để LOAD dữ liệu choviệc truyền và đọc SBUF để truy xuất dữ liệu cho việc nhận những modehoạt động khác nhau đợc lập trình thông qua thanh ghi điều khiển Portnối tiếp SCON
Các thanh ghi ngắt (Interrupt Register):
8051 có hai cấu trúc ngắt u tiên, 5 bộ nguồn Những Interrupt bị mất tácdụng sau khi hệ thống reset (bị cấm) và sau đó đợc cho phép bởi việccho phép ghi lên thanh ghi cho phép ngắt IE (Interrupt Enable Register)
ở địa chỉ A8H Mức u tiên đợc đặt vào thanh ghi tiên ngắt IP (InterruptPriority Level) tại địa chỉ B8H.Cả hai thanhghi đều có địa chỉ
Thanh ghi điều khiển nguồn PCON(Power Control Register):
Thanh ghi PCON không có bit định vị , nó ở địa chỉ 87H bao gồmcác bit địa chỉ tổng hợp Các bit PCON đợc tóm tắt nh sau:
Bit 7 (SMOD): bit có tốc độ Baud ở mode 1, 2, 3 ở Port nốitiếp khi set
Bit 6, 5, 4: không có địa chỉ
Bit 3 (GF1) : Bit 1 của cờ đa năng
Trang 15 Bit 2 (GF0) : Bit 2 của cờ đa năng.
Bit 1 * (PD) : Set để khởi động mode Power Down và thoát
Phần II : Giao Tiếp Máy Tính với vi điều khiển
8051.
Giới Thiệu Các Phơng Pháp Giao Tiếp Máy Tính
Việc giao tiếp giữa máy tính và thiết bị ngoại vi có thể giao tiếp bằng 3cách:
Giao tiếp bằng Slot – Card
Giao tiếp qua cổng song song(máy in)
Giao tiếp qua cổng nối tiếp ( COM)
I.Giao Tiếp Bằng Slot Card
Bên trong máy tính,ngoài những khe cắm dùng cho card vào
ra, card màn hình,vẫn còn những rãnh cắm để trống Để giao tiếp với máytính, ta có thể thiết kế card mở rộng để gắn vào khe cắm mở rộng này,ở máytính PC/XT rãnh cắm chỉ có một loại với độ rộng 8 bit và tuân theo tiêuchuẩn ISA (Industry Standard Architecture) Rãnh cắm theo tiêu chuẩn ISA
có 62 đờng tín hiệu, qua các đờng tín hiệu này máy tính có thể giao tiếp dễdàng với thiết bị bên ngoài thông qua card mở rộng
Trên rãnh cắm mở rộng,ngoài 20 đờng địa chỉ, 8 đờng dữ liệu ,còn cómột số đờng điều khiển nh : RESET, IOR, IOW,AEN, CLK,… do đó cardgiao tiếp với máy tính qua slot card đơn giản, số bit có thể tăng dễ dàng,giảm đợc nhiều linh kiện, tốc độ truyền dữ liệu nhanh( truyền song song),tuy nhiên, do khe cắm nằm bên trong máy tính nên khi muốn gắn card giaotiếp vào thì phải mở nắp ra, điều này gây bất tiện cho ngời sử dụng
Trang 16II Giao Tiếp Bằng Cổng Song Song
Việc giao tiếp giữa KIT vi điều khiển 8051 với máy tính đợc thựchiện qua ổ cắm 25 chân ở phía sau máy tính.Qua công này dữ liệu đợctruyền đi song song, nên đôi khi còn đợc gọi là cổng ghép nối song song
Lối ra Lối raLối ra Lối ra Lối ra Lối ra Lối ra Lối vào (Input) Lối vào
Lối vào Lối vào Lối raLối vào Lối raLối ra
Hết giấySelect ( Lựa chọn)Auto Feed (Tự nạp)Error (Lỗi)
0: Đặt lại máy inSelect in
Nối đấtNối đấtNối đấtNối đấtNối đấtNối đấtNối đất
Trang 17Khi máy tính gửi tới dữ liệu ra cổng máy in muốn dữ liệu này quaKIT vì điều khiển 8051 ta phải giao tiếp qua một vi mạch 8255.IC 8255 làmviệc ở Mode1 : Port A là nhập dữ liệu ; Port B xuất dữ liệu.
Sở đồ kết nối giữa IC 8255 với cổng máy in:
Vì 8255 đợc khởi tạo làm việc ở Mode 1 : Port A nhập dữ liệu Port Bxuất dữ liệu nên khi máy tính gửi tín hiệu STROBE đến 8255,yêu cầu 8255nhận dữ liệu do máy tính gửi đến và khi 8255 nhận dữ liệu thì nó tạo ra mộttín hiệu ở PC5 đa qua ACK báo cho máy tính biết là 8255 đã nhận dữ liệu
do máy tính gửi đến, đồng thời lúc đó ở PC3 của 8255 tạo tín hiệu INTRAtác động đến chân ngắt INT1 (pin 13) của 8051 làm cho 8051 chạy chơngtrình phục vụ ngắt và dữ liệu từ máy tính qua 8255 sẽ đợc gửi đến CPU để
xử lý
III.Giao Tiếp Bằng Cổng Nối Tiếp
Cổng nối tiếp RS232 là một giao diện phổ biến rộng rãi nhất,ngời tacòn gọi cổng này là cổng COM1,còn cổng COM2 để tự do cho các ứngdụng khác.Giống nh cổng máy in cổng COM cũng đợc sử dụng một cáchthuận tiện cho việc giao tiếp với thiết bị ngoại vi
Việc truyền dữ liệu qua cổng COM đợc tiến hành theo cách nốitiếp,nghĩa là các bit dữ liệu đợc truyền đi nối tiếp nhau trên một đờng dẫn
Trang 18Loại truyền này có khả năng dùng cho những ứng dụng có yêu cầu truyềnkhoảng cách lớn hơn, bởi vì các khả năng gây nhiễu là nhỏ đáng kể hơn khidùng một cổng song song(cong máy in).
Cổng COM không phải là một hệ thống bus nó cho phép dễ dàng tạo
ra liên kết dới hình thức điêm với điểm giữa hai máy cần trao đổi thônngtin với nhau, một thành viên thứ ba không thể vào cuộc trao đổi thông tinnày
DCDRXDTXDDTRGNDDSRRTSCTSRI
Lối vàoLối vàoLối raLối ra
Lối vàoLối raLối vàoLối vào
Data Carier DetectReceive DataTrasnmit DataData Terminal ReadyNối Đất
Data Set ReadyRequest to SendClẻa to sendRing Indicator
Phích cắm COM có tổng cộng 8 đờng dây,cha kể đến đờng nối đất,trên thực
tế có hai loại phích cắm,một loại 9 chân và một loại 25 chân.Cả hai loại này
đều có chung một đặc điểm
Việc truyền dữ liệu xảy ra ở trên hai đờng dẫn , qua chân cắm raTXD máy tính gửi dữ liệu của nó đến KIT vi điều khiển.Trong khi đó cácdữ liệu mà máy tính nhận đợc,lại đợc dẫn đến chân RXD các tín hiệu khác
Trang 19đóng vai trò nh là tín hiệu hỗ trợ khi trao đổi thông tin, và vì thế không phảitrong mọi trờng hợp ứng dụng đều dùng hết.
Vì tín hiệu cổng COM thờng ở mức +12V, -12V nên không tơng thích với
điện áp TTL nên để giao tiếp KIT vi điều khiển 8051 với máy tính qua cổngCOM ta phải qua một vi mạch biến đổi điện áp cho phù hợp với mức TTL,
ta chọn vi mạch MAX232 để thực hiện việc tơng thích điện áp
Vi mạch này nhận mức RS232 đã đợcgửi tới từ máy tính và biến đổitín hiệu này thành tín hiệu TTL để cho tơng thích với IC 8051 và nó cũngthực hiện ngợc lại là biến đổi tín hiệu TTL từ vi điều khiển thành mức+12V, -12V để cho phù hợp hoạt động của máy tính.Giao tiếp theo cáchnày, khoảng cách từ máy tính đến thiết bị ngoại vi có thể đạt tới trên 20mét
Đối với đề tài chỉ yêu cầu truyền dữ liệu vào máy tính qua KIT chứkhông truyền từ máy tính ra kit vì vậy chúng em chọn vi mạch MAX232
để thực hiện biến đổi tơng thích mức tín hiệu
Ưu điểm của giao diện này là có khả năng thiết lập tốc độ Baud.Khi dữ liệu từ máy tính đợc gửi đến KIT vi điều khiển 8051 qua cổngCOM thì dữ liệu này sẽ đợc đa vào từng bit (nối tiếp) vào thanh ghi SBUF(thanh ghi đệm), đến khi thanhghi đệm đầy thì cờ RI trong thanh ghi điềukhiển sẽ tự động Set lên 1 và lúc này CPU sẽ gọi chơng trình con phục vụngắt và dữ liệu sẽ đợc đa vào để xử lý
Trang 201.Giới thiệu về RS232
Vào năm 1960, cùng với sự phát triển mạnh của các thiết bị đầu cuốimáy tính chia sẻ thời gian, các Modem đã đợc tung ra ngày càng nhiềunhằm đảm bảo cho các thiết bị đầu cuối có thể dùng các đờng điện thoại đểthông tin giữa các máy tính với nhau ở những khoảng cách xa Modem vàcác thiêt bị đợc dùng để gửi số liệu nối tiếp thờng đợc gọi là thiết bị thôngtin số liệu DCE (Datommunication Equipment) Các thiết bị đầu cuối hoặcmáy tính đang gửi hay nhận số liệu đợc gọi là các thiết bị đầu số liệu DTE(Data Terminal Equipment) Nhằm đáp ứng với nhu cầu về tín hiệu và cácchuẩn bắt tay (handshake standards) giữa DTE và DCE, hiệp hội kỹ thuật
điện tử EIA đã đa ra chuẩn RS-232C Chuẩn này mô tả chức năng 25 chântín hiệu và bắt tay cho việc chuyển dữ liệu nối tiếp Nó cũng mô tả các mức
điện áp, trở kháng, tốc độ truyền cực đại và điện dung cực đại cho các đờngtín hiệu này
RS-232 ấn định 25 chân tín hiệu, và quy định các đầu nối DTE phải là male(đực) và các đầu nối DCE phải là female (cái) Một loại đầu nối đặc biệtkhông đợc cho, nhng thờng dùng nhiều nhất là đầu nối mele DB-25P (hình2-1) Ngoài ra, đối với nhiều hệ thống còn dùng loại 9 chân nh loại DE-9Pmele (hình 2-2)
Hình 2-1
Trang 21Việc mô tả chuẩn này đợc chia làm ba phần: Các đặc điểm kỹ thuật
về điện, mô tả các đờng dữ liệu điều khiển và sử dụng bộ kết nối chân ra.a.Đặc điểm kĩ thuật về điện của RS232:
Sơ đồ chân của serial port (COM)
IN
NUMBERS
FOR 9 PINS
PINNUMBERSFOR 25PINS
COMMONNAME
RS232CNAME
SIGNALDIRECTION
TxDRxDRTSCTS
AABABBCACB
INOUTINOUT6
-5
1
678910
DSRGNDCD
CCABCF
OUT-OUT 11
12131415
SCFSCBSBAẹB
OUTOUTINOUT
Trang 22171819
OUT-ININ9
2122232425
CGCECH/CIDA
OUTOUTIN/OUTIN-Hình 1 Qui định về chân của RS232C
Mức điện áp logic của RS-232C là khoảng điện áp giữa +15V và –15V Các đờng dữ liệu sử dụng mức logic âm: logic 1 có điện thế giữa –5Vvà-15V, logic 0 có điện thế giữa +5V và +15V tuy nhiên các đờng điềnkhiển (ngoại trừ đờng TDATA và RDATA) sử dụng logic dơng: gía trịTRUE = +5V đến +15V và FALSE =-5V đến –15
ở chuẩn giao tiếp này, giữa ngõ ra bộ kích phát và ngõ vào bộ thu có mứcnhiễu đợc giới hạn là 2V Do vậy ngỡng lớn nhất của ngõ vào là 3V trái±lại mức 5V là ng± ỡng nhỏ nhất với ngõ ra Ngõ ra bộ kích phát khi khôngtải có điện áp là 25V.±
Các đặc điểm về điện khác bao gồm
- RL (điện trở tải) đợc nhìn từ bộ kích phát có giá trị từ 3 - 7k
- CL (điện dung tải) đợc nhìn từ bộ kích phát không đợc vợt quá2500pF
- Để ngăn cản sự dao động quá mức, tốc độ thay đổi (Slew rate ) của
điện áp không đợc vợt qúa 30V/#s
Đối với các đờng điều khiển, thời gian chuyển của tín hiệu (từ TRUE sangFALSE, hoặc từ FALSE sang TRUE ) không đợc vợt qúa 1ms Đối với các
đờng dữ liệu, thời gian chuyển (từ 1 sang 0 hoặc từ 0 sang 1) phải không
v-ợt qúa 4% thời gian của 1 bit hoặc 1ms
b.Các đờng dữ liệu và điều khiển của Serial Port (Com):
- TxD: Dữ liệu đợc truyền đi từ Modem trên mạng điện thoại
- RxD: Dữ liệu đợc thu bởi Modem trên mạng điện thoại
Các đờng báo thiết bị sẵn sàng:
- DSR : Để báo rằng Modem đã sẵn sàng
Trang 23- DTR : Để báo rằng thiết bị đầu cuối đã sẵn sàng
- Các đờng bắt tay bán song công
- RTS : Để báo rằng thiết bị đầu cuối yêu cầu phát dữ liệu
- CTS : Modem đáp ứng nhu cầu cần gửi dữ liệu của thiết bị đầu cuốicho thiết bị đầu cuối có thể sử dụng kênh truyền dữ liệu Các đờng trạngthái sóng mang và tín hiệu điện thoại:
- CD : Modem báo cho thiết bị đầu cuối biết rằng đã nhận đợc mộtsóng mang hợp lệ từ mạng điện thoại
- RI : Các Modem tự động trả lời báo rằng đã phát hiện chuông từmạng điện thoại địa chỉ đầu tiên có thể tới đợc của cổng nối tiếp đợc gọi là
địa chỉ cơ bản (Basic Address) Các địa chỉ ghi tiếp theo đợc đặt tới bằngviệc cộng thêm số thanh ghi đã gặp của bộ UART vào địa chỉ cơ bản
- Mức tín hiệu trên chân ra RxD tùy thuộc vào đờng dẫn TxD và thôngthờng nằm trong khoảng –12 đến +12 Các bit dữ liệu đợc gửi đảo ngợclại Mức điện áp đối với mức High nằm giữa –3V và –12V và mức Lownằm giữa +3V và +12V Trên hình 2-4 mô tả một dòng dữ liệu điển hìnhcủa một byte dữ liệu trên cổng nối tiếp RS-232C
- ở trạng thái tĩnh trên đờng dẫn có điện áp –12V Một bit khởi động(Starbit) sẽ mở đầu việc truyền dữ liệu Tiếp đó là các bit dữ liệu riêng lẻ sẽ
đến, trong đó các bit giá trị thấp sẽ đợc gửi trớc tiên Còn số của các bitthay đổi giữa 5 và 8 ở cuối của dòng dữ liệu còn có một bit dừng (Stopbit)
để đặt trở lại trạng thái ngõ ra (-12V)
Trang 24Địa chỉ cơ bản của cổng nối tiếp của máy tính PC có thể tóm tắt nh sau
COM 1 (cổng nối tiếp thứ nhất) Địa chỉ cơ bản = 3F8(Hex)
COM 2 (cổng nối tiếp thứ hai) Địa chỉ cơ bản = 2F8(Hex)
COM 3 (cổng nối tiếp thứ ba) Địa chỉ cơ bản = 3E8(Hex)
COM 4 (cổng nối tiếp thứ t) Địa chỉ cơ bản = 2E8(Hex)
Cũng nh ở cổng máy in, các đờng dẫn tín hiệu riêng biệt cũng chophép trao đổi qua các địa chỉ trong máy tính PC Trong trờng hợp này, ngời
ta thờng sử dụng những vi mạch có mức độ tích hợp cao để có thể hợp nhấtnhiều chức năng trên một chip ở máy tính PC thờng có một bộ phát/nhậnkhông đồng bộ vạn năng (gọi tắt là UART: Universal AsnchronousReceiver/ Transmitter) để điều khiển sự trao đổi thông tin giữa máy tính vàcác thiết bị ngoại vi Phổ biến nhất là vi mạch 8250 của hãng NSC hoặc cácthế hệ tiếp theo
Thông thờng với các yêu cầu ứng dụng tốc độ thấp ngời ta giao tiếpqua ngõ nối tiếp, nó giao tiếp theo tiêu chuẩn RS232C và dùng để giao tiếpgiữa máy tính với Modem hoặc Mouse Ngoài ra cũng có thể dùng giaotiếp với printer hay plotter nhng không thông dụng lắm bởi tốc độ truyềnquá chậm Đối với máy AT cho ta hai ngõ giao tiếp COM1 và COM2 Trongmột số card I/O ta có thể có đến 4 cổng COM
Để giao tiếp nối tiếp với 2 ngõ COM này Bus hệ thống của CPU(Data Bus và Address Bus) hãng IBM sử dụng hai Chip lập trình của Intel là
8250 UART (Universal Asynchronus Receiver Transmitter) Địa chỉ theo
bộ nhớ của hai Chip này là 0040:0000 cho UART của ngõ COM1 và
Trang 250040:0002 cho UART của ngõ COM2 (Địa chỉ logic do hệ điều hành chỉ
định) và địa chỉ theo Port để truy xuất khi sử dụng là 3F8-3FF cho COM1
và 2F8-2FF cho COM2
Dữ liệu truyền qua cho Port COM dới dạng nối tiếp từng Bit một,
đơn vị dữ liệu có thể là 5 Bit, 6 Bit hay 1 byte tùy theo sự cài đặt lúc khởitạo Port COM Ngoài ra để truyền dữ liệu qua Port COM còn cần nhữngtham số sau: Bit mở đầu cho một đơn vị dữ liệu START Bit STOP Bit (Bitkết thúc) Parity (Kiểm tra chẵn lẻ) Baud Rate (Tốc độ truyền) tạo thànhmột Frame (Khung truyền)
Port COM là một thể khởi tạo bằng BIOS thông qua chức năng 0 củaInterrupt 14, nạp vào thanh ghi DX1 chỉ số chọn kênh (COM1 = 0, COM2 = 1) Thanh ghi AL đợc nạp vào các tham số của việc truyền dữ liệu
Bit D2 : Cho biết số Stop Bit
0 : Sử dụng một bit Stop
1 : Sử dụng hai bit Stop
Bit D3 D4: Các Bit parity (chẵn lẻ)
0 0 : Không kiểm tra tính Parity
1 1 : Không kiểm tra tính Parity
0 1 : Odd (lẻ)
1 0 : Even (chẵn)
Bit D5D6D7 :Cho biết tốc độ truyền (Baud Rate)
0 0 0 : Tốc độ truyền 110bps (bit per second)
0 0 1 : Tốc độ truyền 150bps (bit per second)
0 1 0 : Tốc độ truyền 300bps (bit per second)
0 1 1 : Tốc độ truyền 600bps (bit per second)
1 0 0 : Tốc độ truyền 1200bps (bit per second)