MỤC LỤC:
NỘI DUNG
trang
Giới thiệu chung................................................................................01
CHƯƠNG 1: GIAO THỨC TRUYỀN THÔNG.............................03
I.
Giới thiệu................................................................................03
II.
Protocol...................................................................................05
1. Khái niệm ..........................................................................05
2. Xây dựng Protocol.............................................................06
a) Cấu trúc frame dữ liệu..................................................06
b) Xây dựng Protocol........................................................08
III. Truyền thông nối tiếp..............................................................09
1 Thanh ghi diều khiển đường truyền...................................10
2 Thanh ghi điều khiển MODEM.........................................11
3 Thanh ghi trạng thái đường dây.........................................12
4 Chuẩn giao tiếp RS-232.....................................................13
5 Giới thiệu IC Max_232......................................................15
CHƯƠNG 2: CƠ LƯỢC AT89C51.................................................17
I.
Khái quát về họ IC MCS-51...................................................17
II.
Giới thiệu AT89C52................................................................18
1. Những đặc trưng cơ bản.....................................................20
2. Cấu hình chân....................................................................20
III. Tổ chức bộ nhớ.......................................................................25
1. RAM đa dụng.....................................................................25
2. RAM địa chỉ hoá từng bit..................................................27
3. Các bank thanh ghi............................................................27
IV. Các thanh ghi chức năng đặc biệt...........................................29
1 Từ trạng thái chương trình.................................................30
2 Thanh ghi B.......................................................................32
3 Con trỏ ngăn xếp................................................................32
4 Con trỏ dữ liệu...................................................................33
5 Các thanh ghi port xuất nhập.............................................33
6 Các thanh ghi timer............................................................34
7 Các thanh ghi port nối tiếp.................................................35
8 Các thanh ghi ngắt.............................................................36
9 Thanh ghi điều khiển công suất.........................................36
V.
Bảo vệ bộ nhớ.........................................................................36
VI.
Hoạt động của port nối tiếp.....................................................37
1 Giới thiệu...........................................................................37
2 Thanh ghi điều khiển port nối tiếp.....................................38
3 Các chế độ hoạt động.........................................................40
4 Khởi động và truy xuất các thanh ghi cổng nối tiếp..........44
5 Tốc độ baud port nối tiếp...................................................47
CHƯƠNG 3: RTX51 TINY.............................................................50
Giới thiệu chung...............................................................................50
1. Giới thiệu phần mềm KEIl.................................................50
2. Chương trình tuần hoàn thời gian biểu của RTX51...........51
3. Các yêu cầu và định nghĩa.................................................55
4. Các hàm thư viện của RTX51............................................56
CHƯƠNG 4: BOARD DEMO-KIT................................................59
I.
Khối hiển thị...........................................................................60
II.
Khối giao tiếp A/D - D/A........................................................62
III. Khối RS-232...........................................................................68
IV. Khối output (rơle)...................................................................70
V.
Khối input...............................................................................71
CHƯƠNG 5:
Phần 1: TẬP LỆNH...........................................................................72
I.
Giới thiệu tập lệnh...................................................................72
II.
Nội dung tập lệnh....................................................................73
Phần 2: MÔ TẢ CHƯƠNG TRÌNH..................................................76
Chương trình nhận chuỗi.........................................................78
Chương trình kiểmtra..............................................................80
Chương trình xử lý tập lệnh....................................................81
Chương trình đóng gói dữ liệu................................................83
Chương trình Demo-Kit..........................................................85
Phần 3: Chương trình........................................................................88
Báo cáo kết quả...............................................................................146
Giới thiệu chung :
Như chúng ta đã biết trong điều kiện khoa học kỹ thuật và kinh tế phát
triển như hiện nay thì qui trình tự động hóa trong công nghiệp và sản xuất
hầu như không thể thiếu được . Nó đóng một vai tró hết sức quan trọng
trong việc giúp tăng năng suất , tăng độ chính xác và do đó tăng hiệu quả
sản xuất . Trong đó một vai trò không thể không nhắc đến của qui trình tự
động hóa là thu thập dữ liệu và điều khiển từ xa .
Để kiểm tra tình hình sản xuất cũng như trạng thái hoạt động của từng
phân xưởng ta không thể cứ cho người đến tận nơi , kiểm soát từng hoạt
động và quay về báo cáo nếu có sự cố xảy ra mà nhất thiết phải có một hệ
thống thu thập dữ liệu từ xa . Khi đó, người kỹ sư vận hành chỉ cần ngồi tại
bàn điều khiển và quan sát những trạng thái được cập nhật về liên tục để có
thể xử lý kịp thời những tình huống xảy ra thông qua quá trình liên kết dữ
liệu, mà không phải mất thời gian đi đến nơi có xảy ra sự cố .
Không dừng ở đó , việc thu thập dữ liệu và điều khiển từ xa còn là một
nhân tố quản lý, một yếu tố tất yếu cho sự phát triển của tất cả các ngành
nghề , các lĩnh vực khác như giao thông vận tải ( theo dõi các trạm giao
thông đường bộ, hàng hải , hàng không … ) , điện lực , y tế . . .
Biết được ý nghĩa và tầm quan trọng của nó nên chúng em quyết định
nghiên cứu và hy vọng có cơ hội mở rộng đề tài này .
Tổng quan về công việc thực hiện như sau :
- Xây dựng một tập lệnh trong giao tiếp giữa Máy tính và microcontroller.
- Xây dựng một giao thức truyền nhận thông tin (Protocol).
- Sử dụng tập lệnh theo yêu cầu mong muốn .
-
Xây dựng một chương trình demo như một ứng dụng cụ thể của đề tài
.
Chương 1:
GIAO THỨC TRUYỀN THÔNG
I.
GIỚI THIỆU:
Sơ đồ các lớp cơ bản xây dựng cho quá trình liên kết dữ liệu giữa 2
đối tượng sử dụng:
Chương trình người sử dụng
USER 1
Chương trình
ngươi sử dụng
Dữ liệu
Quản lý truyền tin
USER 2
Dữ liệu
Tập lệnh
Quản lý truyền tin
Liên kết dữ liệu
Frame dữ liệu
Liên kết dữ liệu
Lớp vật lý
RS-232
Lớp vật lý
Xử lý giao tiếp thiết bị
Mục đích chính của luận văn này không nhằm thực hiện một ứng dụng
điều khiển cụ thể mà tạo nên một ứng dụng mới trong giao tiếp dữ liệu giữa
hai đối tượng là máy tính và khối vi xử lý. Vì thế, chương trình người sử
dụng, liên kết giữa hai đối tượng sử dụng- user 1và user2 ( tức chương trình
Demo-Kit thực hiện trong phần cuối chương trình ) không phải là trọng tâm
mà chỉ là một ứng dụng cụ thể của đề tài. Vì thế, nó chỉ xây dựng các dạng
sóng vào ra một cách đơn giản, mang ý nghĩa mô phỏng cho những gì thực
hiện được trong việc xây dựng chương trình.
Kết quả mong muốn của luận văn là xây dựng được một môi trường
thuận lợi cho quá trình trao đổi thông tin giữa hai đối tượng sử dụng. Hay
nói khác hơn, đây là một tầng đệm về ngôn ngữ giao tiếp, một quá trình
trung gian giúp cho việc liên kết dữ liệu được diễn ra một cách trôi chảy
theo mong muốn của người sử dụng. Các lớp cơ bản được xây dựng trong hệ
thống này là: lớp vật lý, lớp liên kết dữ liệu (datalink ), lớp quản lý truyền tin
và sau cùng là lớp dữ liệu.
Lớp vật lý: là các yếu tố đặc trưng bởi mức điện áp hay dòng
điện cho các ngõ vào ra. Tiêu biểu cho lớp này là các phương tiện như thiết
bị điện (dây dẫn, chân IC…) hay các chuẩn giao tiếp giúp cho lớp liên kết dữ
liệu được thực hiện. Một trong các thủ tục protocol trong liên kết dữ liệu đơn
giản nhất cho lớp này là sử dụng chuẩn giao tiếp RS-232 trong truyền thông
nối tiếp.
Lớp liên kết dữ liệu: lớp này quan tâm đến các dạng truyền dữ
liệu (đồng bộ hay bất đồng bộ), tốc độ sử dụng, kiểm tra và sửa lỗi, chế độ
phát lại (echo)… đây là phần trọng tâm của một chương trình liên kết dữ
liệu, xây dựng Protocol cho phần này là thiết lập các thủ tục liên kết và truy
xuất dữ liệu.
Lớp quản lý truyền tin: lớp này có nhiệm vụ quản lý dữ liệu
(ghi nhận và truy xuất dữ liệu từ các vùng địa chỉ của các tín hiệu vào ra
theo định nghĩa của tập lệnh), phần giới thiệu tập lệnh được thực hiện trong
chương 5.
Lớp dữ liệu: lớp này đảm nhận vai trò ghi nhận các giá trị dữ
liệu tại đầu mỗi user, bao gồm các dạng tín hiệu điều khiển như dạng xung,
dạng mức và tín hiệu dạng A/D.
Vấn đề cần quan tâm chính của chúng ta là xây dựng một chuẩn cho tầng
liên kết dữ liệu (các thủ tục protocol).
II.
PROTOCOL:
1. Khái niệm:
Protocol cho tầng liên kết dữ liệu là một phương thức hay thủ tục truyền
thông được đặt ra mà một qui trình truyền nhận thông tin phải tuân theo. Nó
bao gồm tập hợp đồng nhất các qui tắc điều hành nhằm đảm bảo sự chính
xác của một hệ thống hoặc mạng trong quá trình trao đổi thông tin.
Trước khi tìm hiểu về protocol của tầng liên kết dữ liệu một cách chi tiết,
chúng ta xem qua một số kỹ thuật sử dụng để thực thi hoặc mô tả một
protocol. Theo lý thuyết, kiểm tra giá trị của một quá trình hoạt động nhằm
chắc rằng trong quá trình hoạt động của hệ thống sẽ không có một điều kiện
không mong muốn nào hoặc các trạng thái bất thường xảy ra khi protocol
hoạt động “break down” (ví dụ như khi rơi vào một vòng lặp vô tận hoặc
gặp phải một trường hợp mà tất cả các hoạt động đều bị dừng và hệ thống bị
khóa “locks up” ).
Với mục đích minh họa những kỹ thuật kiểm tra và mô tả khác nhau này,
chúng ta xét một tầng liên kết dữ liệu đơn giản bán song công: stop–and–
wait và tự động lặp lại yêu cầu như một ví dụ.Về cơ bản protocol này quản
lý hoạt động của hai trạm ( được xem là đồng nhất ) tại mỗi đầu của một liên
kết dữ liệu .Protocol này bao gồm một trạm ( đầu “1” ) gởi một frame dữ
liệu mang một dãy số đến một trạm khác ( đầu “2” ). Frame dữ liệu này sẽ
chứa thêm vào một gói thông tin khác của dữ liệu thực tại . Kết thúc việc
truyền có một vùng đệm nhận, nơi mà các gói dữ liệu này được chứa từ
computer chủ cục bộ hoặc cuối cùng là lưu trữ theo ưu tiên trong một frame
dữ liệu và bắt đầu truyền qua datalink .Kể cả sau khi truyền dữ liệu trong
vùng đệm vào “1” , các dữ liệu giống nhau cũng được giữ trong vùng đệm
cho đến khi có thông báo đã nhận được từ một đầu khác ( đầu “2” ) mà
khung dữ liệu chứa gói dữ liệu này đã nhận được thành công.
Điều kiện sau cùng (nhận thành công 1 frame dữ liệu) được cho biết bởi
đầu trạm 2,đầu này gởi frame dãy số của một frame hợp lệ được nhận sau
cùng trở về từ trạm 1 như một phần của frame dữ liệu kế bắt đầu gởi từ “2”
sang “1” .
Ví dụ : Nếu đầu 1 vừa gởi một frame đến đầu 2 nó sẽ không được phép
gởi frame kế ( chứa một gói dữ liệu mới ) cho đến khi nó nhận được một
frame từ đầu 2 mang theo thông tin trả lời đã nhận tốt . Nếu đầu 1 không
nhận được thông báo này trở về từ đầu 2 trong vòng một khoảng thời gian
nghỉ (timeout) được định trước , nó sẽ truyền lại frame gởi đến đầu 2 và hy
vọng trong thời gian này nó nhận được thông báo đã nhận đúng từ đầu 2 . Và
nếu không thì sau vài lần lặp lại (được định trước ) mà đầu “1” vẫn không
nhận được thông báo nhận đúng từ đầu “2” nó xem như đường truyền bị lỗi
và thông báo ra ngoài.
2. Xây dựng Protocol:
Xây dựng một protocol cho quá trình trao đổi dữ liệu trong trường hợp
mạch vi xử lý đóng vai trò slave và máy tính (PC) đóng vai trò master trong
quá trình truyền nhận thông tin.
a) Cấu trúc frame dữ liệu:
Trong chế độ hoạt động này khối vi xử lý không có yêu cầu gởi cho PC
mà chỉ trả lời kết quả theo yêu cầu nhận được từ PC tuân theo qui tắc của tập
lệnh được xây dựng trong luận văn này . Một Protocol được đặt ra cho liên
kết dữ liệu với một frame truyền được chứa các byte qui định như sau :
Header
Mã ID
Control fiel
Length
Các byte DATA
Bốn byte đầu của frame truyền được gọi chung là các byte control fiels
bao gồm :
- Một byte đầu tiên là byte header : là ký tự qui định nhằm đánh dấu
cho đầu mỗi frame truyền.
- Một byte mã ID là mã số thứ tự của frame truyền mỗi khi có một yêu
cầu mới cho vi xử lý (mã ID được đánh số liên tục từ 0-99 và trở về 0). Mã
ID này sẽ mang một ý nghĩa quan trọng cho việc mở rộng đề tài luận văn sau
này (kết nối nhiều frame truyền liên tiếp).
- Một byte control fiel : đây là byte chức năng để kiểm tra thông tin
cho mỗi frame truyền . Byte control fiel được định nghĩa như sau :
X
X
X
X
X
b2
b1
b0
+ 5bit đầu có giá trị tùy định (có thể được sử dụng khi mở rộng đề tài
này nhằm dùng vào việc tăng biến điều khiển ).
+ bit b0 : kiểm tra nội dung frame truyền .
b0=0 : frame truyền có dữ liệu kèm theo (số byte data >0 )
b0=1 : frame truyền không có dữ liệu. Trường hợp này xảy rakhi
frame được gởi nhằm mục đích nhắc lại nội dung frame gởi vừa rồi.
+ bit b1 : kiểm tra lần gởi của một yêu cầu từ PC
b1=0 : frame được gởi lần đầu (gởi 1 yêu cầu mới cho vi xử lý)
b1=1 : frame gởi lại (mang cùng một nội dung với chuỗi DATA trước
đó).
+ bit b2 : bit này chỉ được gởi đi từ vi xử lý để báo với PC kết quả của
lần truyền vừa rồi
b2=0 : dữ liệu gởi từ PC đến vi xử lý nhận đúng
b2=1 : dữ liệu gởi từ PC đến vi xử lý bị lỗi
- 1 byte length : chỉ số byte của chuỗi data cộng một byte “” kết thúc
frame truyền.
- Các byte data : mang thông tin yêu cầu của master (PC) đối với slave
(vi xử lý) dựa trên qui tắc tập lệnh . Chuỗi data bao gồm :
ADDR ADDR
...
Hai byte đầu chứa địa chỉ (được định nghĩa theo tập lệnh) và cuối
cùng phải là kí tự ‘’
b) Xây dựng protocol:
Với frame truyền được định nghĩa như trên ta thiết lập một protocol
cho quá trình giao tiếp dữ là:
- Khối PC luôn đóng vai trò của một master, nghĩa là nó có quyền
quyết định cho việc trao đổi dữ liệu có xảy ra hay không, và quyết định
những yêu cầu cần thực thi đối với khối vi xử lý. Khối vi xử lý luôn đóng
vai trò của một slave; trong quá trình hoạt động, nó phải chờ chỉ được quyền
gởi tín hiệu trả lời mỗi khi nhận được yêu cầu từ PC. Do các tác vụ trong
chương trình được thực hiện song song theo hệ thời gian thực (multitasking),
nên đôi khi khối vi xử lý có thể gởi tín hiệu trả lời ngay khi yêu cầu từ PC
gởi đến chưa được xử lý xong (nếu thời gian xử lý vượt quá khoảng thời
gian quét tối đa qui định cho 1 tác vụ). Khi đó, khối vi xử lý sẽ tạo nên một
frame truyền trả về PC, không mang theo nội dung trả lời cho yêu cầu của
PC mà chỉ có các byte control fiels với mục đích thông báo kết qua vừa nhận
được từ PC là đúng hay sai (nhờ vào bit b2 của byte control fiel).
- Nếu trong một khoảng thời định trước mà PC chưa nhận được tín
hiệu trả lời từ vi xử lý, nó sẽ gởi tiếp một frame khác. Frame này chỉ gồm
các byte control fiels mà không mang theo yêu cầu mới cho vi xử lý nhằm
mục đích nhắc lại frame vừa truyền. Khi nhận được frame này, khối vi xử lý
kiểm tra quá trình xử lý trước đó thực hiện xong chưa và trả lời lại cho PC.
- Nếu sau vài lần gởi mà PC vẫn không nhận được trả lời từ vi xử lý
thì xem như đường truyền bị lỗi. Nếu đường truyền bị lỗi hoặc có thông báo
lỗi từ vi xử lý gởi về thì PC sẽ gởi một frame truyền mới mang đầy đủ
thông tin ban đầu.
Mã ID của frame truyền được đặt ra nhằm mục đích để mở rộng
chương trình sau này. Nếu trong trường hợp truyền nhận chuỗi dữ liệu có độ
dài quá lớn hoặc truyền nhận file, ta không thể truyền một lần trên một
frame mà phải cắt ra thành nhiều frame truyền. Khi đó, việc đánh mã ID
chính xác sẽ giúp cho việc kết chuỗi dữ liệu nhận về không bị xáo trộn. Qui
tắc đánh mã ID là nó chỉ được tăng dần sau mỗi lần trao đổi dữ liệu thành
công, tức PC phải nhận được trả lời từ vi xử lý theo đúng yêu cầu mà nó gởi
đến và kết thúc một chu trình liên kết dữ liệu.
III.
TRUYỀN THÔNG NỐI TIẾP:
Ta có thể thực hiện truyền dữ liệu giữa máy tính và vi xử lý theo nhiều
chuẩn khác nhau. Vì trong luận văn này sử dụng đến việc thu phát dữ liệu
theo kiểu nối tiếp nên cần phải khái quát vài nét về các chuẩn truyền thông.
Truyền thông nối tiếp là việc thu phát dữ liệu ở dạng chuỗi các xung
điện – gọi là các bit. Hiệp hội điện tử công nghiệp (EIA) đưa ra các chuẩn
truyền thông khác nhau như : RS 232-C, RS-422, RS-423, RS-485, RS449,v.v..Ký hiệu RS là viết tắt của Recommended Standard, nghĩa là tiêu
chuẩn khuyến cáo.
Việc truyền dữ liệu nối tiếp theo chuẩn RS-232 có ưu điểm hơn truyền
song song là mức điện áp hoạt động là +12V và –12V, khoảng cách truyền
xa hơn, ít nhiễu hơn.
Việc trao đổi dữ liệu diễn ra trên hai đường dẫn TxD và RxD, mức tín hiệu
trên chân ra RxD tùy thuộc vào đường dẫn TxD và thường nằm trong
khoảng –12V đến +12V, các bit dữ liệu được đảo ngược lại. Mức cao nằm
giữa –3V và –12V, mức thấp nằm giữa +3V và +12V. Ở trạng thái tĩnh, trên
đường dây có điện áp là –12V.
Một chuỗi dữ liệu truyền đi được bắt đầu bằng một bit khởi đầu, tiếp
theo đó là các bit dữ liệu, bit thấp đi trước. Số bit dữ liệu nằm trong khoảng
5 đến 8 bit, tiếp đó là bit kiểm tra chẳn lẻ và cuối cùng là bit kết thúc (stop
bit). Tốc độ truyền được thiết lập bằng tham số Baudrate, là số bit truyền đi
trong 1 giây, thông thường là 300, 600, 1200, 2400, 4800, 9600 và 19200.
Việc thiết lập các thông số truyền nối tiếp được thực hiện bằng cách
thay đổi các giá trị trong các thanh ghi phục vụ truyền nối tiếp.
Bản đồ thanh ghi nội của bộ thu phát nối tiếp 8250 (không đồng bộ).
Register name
Code
COM
1
COM
2
COM
3
COM
4
Function
Transmitter holding
register
THR
3F8H
2F8H
3E8H
2E8H
OUTPUT
Receiver data register
RDR
3F8H
2F8H
3E8H
2E8H
INPUT
Baud rate divisor (LSB)
BRDL
3F8H
2F8H
3E8H
2E8H
OUTPUT
Baud rate divisor (MSB) BRDH
3F9H
2F9H
3E9H
2E9H
OUTPUT
Interrupt enable register
IER
3F9H
2F9H
3E9H
2E9H
OUTPUT
Interrupt ID register
IID
3FAH
2FAH
3EAH 2EAH INPUT
Line control register
LCR
3FBH
2FBH
3EBH 2EBH OUTPUT
Modem control register
MDC
3FCH
2FCH
3ECH 2ECH OUTPUT
Line status register
LST
3FDH 2FDH 3EDH 2EDH INPUT
Modem status register
MSR
3FEH
2FEH
3EEH
2EEH
INPUT
1. Thanh ghi điều khiển đường truyền (Line Control
Register):
Bit cao của thanh ghi này gọi là bit chốt truy xuất hệ số chia. Nếu bit
này được đặt lên 1 thì giá trị ở thanh ghi cơ sở được truy xuất làm byte thấp
của thanh ghi hệ số chia chọn tốc độ truyền, và giá trị ở thanh ghi cơ sở +1
sẽ được truy xuất làm byte cao của thanh ghi hệ số chia chọn tốc độ truyền.
Nếu bit này được xóa về 0 thì thanh ghi cơ sở sẽ thành thanh ghi đệm thu
phát.
7 6 5 4 3 2 1 0
Bit
Nội dung
Bit 0 Bit 00 : 5 bit data ; 01 : 6 bit data
1
10 : 7 bit data ; 11 : 8 bit data
Bit 2
0 : 1 bit stop
1 : 1,5 hay 2 bit stop
Bit 3
0 : không kiểm tra parity
1 : kiểm tra parity
Bit 4
Bit 5
Bit 6
Bit 7
1 : kiểm tra parity chẵn
0 : kiểm tra parity lẻ
1 : nếu bit 4 = 1; 0 : nếu bit 4 = 0
Cho phép cấm đường truyền nối
tiếp
1 : ngõ ra bị xoá trắng ; 0 : cấm
1 : chọn hệ số chia;
0 : bộ đệm thu, phát
2. Thanh ghi điều khiển MODEM:
Thanh ghi điều khiển MODEM dùng để đặt giao thức bắt tay khi sự
truyền thông sử dụng MODEM.
Bit:
Bit
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit
5,6,7
7 6 5 4 3 2 1 0
Nội dung
Data terminal ready
1 : DTR active; 0 : DTR inactive
Request to send;
1 : RTS active; 0 : RTS inactive
Output 1 (spare signal)
1 : OUT 1 : active; 0 : OUT 1 inactive
Output 2 (interrupt enable signal)
1 : Communication interrupt active
0 : Communication interrupt inactive
Loopback feature
1 : Transmitter output looped back to receiver register
0 : Normal operation
000
3. Thanh ghi trạng thái đường dây (Line Status Register):
Báo cho máy tính biết thông tin, trạng thái của dữ liệu truyền đi.
Bit:
Bit
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
7 6 5 4 3 2 1 0
Nội dung
1 : Có dữ liệu trong bộ đệm nhận
1 : Overrun error : dữ liệu bị chồng
1 : sai parity
1 : Framing error ( bit stop không hợp lệ)
1 : Báo ngắt (đường truyền trống )
1 : Thanh ghi phát trống
1 : Thanh ghi dịch và thanh ghi phát
trống
0 : Thanh ghi dịch còn chứa dữ liệu
0
4. Chuẩn RS-232:
Chuẩn RS-232 lần đầu tiên được giới thiệu vào năm 1962 do hiệp hội
kỹ thuật điện tử EIA (Electronics Industries Association) như là chuẩn giao
tiếp truyền thông giữa máy tính và một thiết bị ngoại vi (modem, máy vẽ,
mouse, máy tính khác,……).
Cổng giao tiếp RS-232 là giao diện phổ biến rộng rãi nhất. Người
dùng máy tính PC còn gọi cổng này là COM 1, còn COM 2 để tự do cho các
ứng dụng khác. Giống như cổng máy in, cổng nối tiếp RS-232 được sử dụng
một cách rất thuận tiện cho mục đích đo lường và điều khiển.
Việc truyền dữ liệu qua RS-232 được tiến hành theo cách nối tiếp,
nghĩa là các bit dữ liệu được gửi đi nối tiếp nhau trên một đường truyền dẫn.
Trước hết, loại truyền này có thể dùng cho những khoảng cách lớn hơn, bởi
vì các khả năng gây nhiễu nhỏ đáng kể hơn là dùng cổng song song. Việc
dùng cổng song song có một nhược điểm đáng kể là cáp truyền dùng quá
nhiều sợi, và vì vậy rất đắt tiền. Hơn nữa tín hiệu nằm trong khoảng 0 - 5V
tỏ ra không thích ứng với khoảng cách lớn.
Cổng nối tiếp RS 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 nối điểm giữa hai máy cần trao đổi
thông tin với nhau. Một thành phần thứ ba không thể tham gia vào cuộc trao
đổi thông tin này.
1
2
6
3
7
4
8
5
9
Cổng Com 9 chân
Bảng sắp xếp chân của cổng nối tiếp ở máy tính:
9 chân
1
2
3
4
5
6
7
8
9
25 chân
8
3
2
20
7
6
4
5
22
Chức năng
DCD _ Data Carrier Detect (Lối vào)
RxD _ Receive Data (Lối vào)
TxD _ Transmit Data (Lối ra)
DTR _ Data Terminal Ready (Lối ra)
GND _ Ground (Nối đất)
DSR _ Data Set Ready (Lối vào)
RTS _ Request to Send (Lối ra)
CTS _ Clear to Send (Lối vào)
RI _ Ring Indicator (Lối ra)
Việc truyền dữ liệu xảy ra trên hai đường dẫn. Qua chân cắm ra TxD,
máy tính gởi dữ liệu của nó đến các thiết bị khác. Trong khi đó dữ liệu mà
máy tính nhận được, lại được dẫn đến chân nối RxD. Các tín hiệu khác đóng
vai trò như là tín hiệu hỗ trợ khi trao đổi thông tin và vì vậy không phải
trong mọi ứng dụng đều dùng đến.
Các bit dữ liệu được gởi đi theo kiểu đảo ngược, nghĩa là các bit có giá
trị “1” sẽ có mức điện áp LOW, các bit có giá trị “0” sẽ có mức điện áp
HIGH. Mức tín hiệu nhận và truyền qua chân RxD và TxD thông thường
nằm trong khoảng –12V đến +12V. Mức điện áp đối với mức HIGH nằm
giữa +3V đến +12V.
Ở trạng thái tĩnh trên đường dây vẫn có điện áp –12V. Một bit khởi động
(Start bit) sẽ mở đầu việc truyền dữ liệu. Tiếp sau đó là các bit riêng lẻ đến,
trong đó các bit có giá trị thấp được gửi trước tiên. Con số của các bit dữ liệu
thay đổi giữa năm và tám. Ở cuối dòng dữ liệu còn có một bit dừng (Stop
bit) để đặt lại trạng thái lối ra (-12V).
Tốc độ Baud có giá trị thông thường là : 300; 600; 1200; 4800; 9600;
19200 Baud. Ký hiệu Baud tương ứng với số bit truyền trong 1 giây (bit per
second _ bps). Chẳng hạn như khi tốc độ Baud bằng 9600 có nghĩa là có
9600 bit dữ liệu được truyền trong 1 giây. Vì mỗi byte dữ liệu có một bit bắt
đầu và một bit được dùng gởi kèm theo, do đó khi truyền một byte dữ liệu đã
có 10 bit được gửi đi. Với tốc độ Baud thông thường, mỗi giây cho phép
truyền nhiều nhất từ 30 đến 1920 byte dữ liệu, vì vậy nhược điểm lớn nhất
của cổng truyền nối tiếp là tốc độ truyền dữ liệu bị hạn chế.
So sánh giữa TTL và RS-232, ta thấy TTL sử dụng mức logic dương và
0,4V chống nhiễu. Trong khi đó RS-232 sử dụng mức điện áp 12V để đảm
bảo truyền được trên đường dây dài. Với khoảng chống nhiễu 12V cho phép
tín hiệu đi qua môi trường nhiễu mạnh mà đối với TTL không thể có được.
Một trong những yêu cầu quan trọng của RS-232 là thời gian chuyển từ
một mức logic này tới một mức logic khác không vượt quá 4% thời gian một
bit. Vì thế ở tốc độ 19200 Baud thời gian mức logic phải nhỏ hơn
0,04/19200s. Vấn đề này làm giới hạn chiều dài đường truyền. Với tốc độ
truyền 19200 Baud, ta có thể truyền xa nhất là 50 feet (15,24 m).
Một trong những vấn đề quan trọng cần chú ý khi sử dụng RS-232 là
mạch thu phát không cân bằng (đơn cực). Điều này có ý nghĩa là tín hiệu vào
ra được so với đất. Vì vậy nếu điện thế tại hai điểm đất của hai mạch thu
phát không bằng nhau thi sẽ có dòng điện chạy trên dây nối đất. Kết quả sẽ
có áp rơi trên dây nối đất (V=I.R) sẽ làm suy yếu tín hiệu logic. Nếu truyền
tín hiệu đi xa, R sẽ tăng dần đến áp rơi trên đất sẽ lớn dần đến lúc tín hiệu
logic sẽ rơi vào vùng không xác định và mạch thu sẽ không nhận đúng dữ
liệu được truyền từ mạch phát. Chính sự không cân bằng trên mạch thu phát
là một trong những nguyên nhân giới hạn đường truyền.
Do trong luận văn này không sử dụng các chuẩn giao tiếp khác
được giơi thiệu trên nên không giới thiệu chi tiết.
5. Giới Thiệu IC MAX-232 :
a)
Đặc điểm:
- Theo tiêu chuẩn EIA (Electronics
Industry Association ).
- Nguồn cung cấp 5V.
- Dùng thêm 4 tụ ngoài 0.1F.
- Tốc độ truyền có thể lên đến 1Mbit
trên 1 giây.
C1+ 1
16 VCC
V+ 2
15 GND
C1- 3
MAXIM 13 R1IN
C2+ 4
C2- 5
14 T1OUT
232E
12 R1OUT
V- 6
11 T1IN
T2OUT 7
10 T2IN
9 R2OUT
R2IN 8
Hình 1
- Có 2 bộ đệm truyền và 2 bộ đệm nhận
b)
Mô tả
Từ hình 2 ta thấy tín hiệu từ máy tính truyền xuống MAX 232 theo
chuẩn TTL/CMOS , sau khi qua MAX 232 được chuyển thành chuẩn RS232. Tín hiệu chuẩn này được đưa qua MAX 485 để truyền trên đường bus
theo dạng vi sai. Tín hiệu nhận về cũng theo dạng vi sai , được chuyển đổi
sang chuẩn RS-232 trước khi được đưa về chuẩn TTL/CMOS để đưa vào
máy tính.
Chân nguồn cần một
tụ Bypass ( vào khoảng
VCC
0.1F), còn 4 tụ còn lại ở
V+
C1+
C1các chân C1, C2, V+ và
C2+
VV- có thể sử dụng loại
C2phân cực hoặc không
RS-232
T1OUT
TTL/CMOS
T1IN
phân cực. Các tụ này ít
INPUT T2IN
OUTPUT
T2OUT
nhất phải từ 0.1F trở lên
R1OUT
R1IN
RS-232
TTL/CMOS
để làm giảm gợn sóng ở
OUTPUT
INPUT
các ngõ ra của bộ truyền
R2IN
R2OTUT
và làm giảm đáng kể công
GND
suất tiêu thụ của nguồn.
Hình 2
Tụ ở các chân C2, V1 và
V2 có thể thay đổi giá trị nhưng tụ C1 thì không.
Chương 2:
SƠ LƯỢC AT89C51
I.
GIỚI THIỆU KHÁI QUÁT VỀ HỌ IC MCS-51™:
MCS-51 là một họ IC vi điều khiển do Intel phát triển và sản xuất.
Một số nhà sản xuất được phép cung cấp các IC tương thích với các sản
phẩm MCS-51 của Intel là Siemens, Advanced Micro Devices, Fujitsu,
Philips, Atmel…
Các IC của họ MCS-51 có các đặc trưng chung như sau:
4 port I/O 8 bit
Giao tiếp nối tiếp
64K không gian bộ nhớ chương trình mở rộng
64K không gian bộ nhớ dữ liệu mở rộng
Một bộ xử lý luận lý (thao tác trên các bit đơn)
210 bit được địa chỉ hóa
Bộ nhân/chia 4 s.
Ngoài ra, tùy theo số hiệu sản xuất mà chúng có những khác biệt về
bộ nhớ và bộ định thời/bộ đếm như trong bảng so sánh dưới đây:
Số hiệu sản
xuất
8031
8051
8751
8951
8032
8052
8752
Bộ nhớ chương
trình trên chip
0K
4K ROM
4K EPROM
4K FLASH
0K
8K ROM
8K EPROM
Bộ nhớ dữ liệu
trên chip
128 byte
128 byte
128 byte
128 byte
256 byte
256 byte
256 byte
Số bộ định thời
(bộ đếm)
2
2
2
2
3
3
3
8952
II.
8K FLASH
256 byte
3
GIỚI THIỆU AT89C52 :
AT89C52 là một Microcomputer 8 bit, họ CMOS, có tốc độ cao và
công suất thấp với bộ nhớ Flash có thể lập trình được. Nó được sản xuất với
công nghệ bộ nhớ không bay hơi mật độ cao của hãng Atmel, và tương thích
với chuẩn công nghiệp của 80C51 và 80C52 về chân ra và bộ lệnh. Vì lý do
đó, kể từ đây về sau ta sẽ dùng thuật ngữ “80C51” (hoặc "8051")
Với sự kết nối linh hoạt 8 bit CPU với flash trên chip, AT89C52 của
Atmel là một micro-computer tuyệt vời với độ linh hoạt cao và giải quyết
hiệu quả nhiều chương trình điều khiển ghi vào nó .
Sơ đồ khối của AT89C51
1 Những đặc trưng của AT89C52.
+ Tương thích với các sản phẩm MCS-51
+ 8KByte bộ nhớ Flash có thể lập trình lại với 1000 chu kỳ đọc/xoá
+ Hoạt động tĩnh đầy đủ: 0Hz đến 24MHz
+ Khoá bộ nhớ chương trình ba cấp
+ 256 x 8 bit RAM nội
+ 32 đường xuất-nhập lập trình được (tương ứng 4 port)
+ Ba timer/counter 16 bit
+ Một cấu trúc ngắt 6-vector 2 mức
+ Một port nối tiếp song công lập trình được dạng full
+ Mạch đồng hồ và bộ dao động trên chip
2 Cấu hình chân của AT89C52 như sau:
Như vậy AT89C52 có tất cả 40 chân. Mỗi chân có chức năng như các
đường I/O (xuất/nhập), trong đó 24 chân có công dụng kép: mỗi đường có
thể hoạt động như một đường I/O hoặc như một đường điều khiển hoặc như
thành phần của bus địa chỉ và bus đữ liệu.
Mô tả chân
VCC (chân 40)
Chân cấp nguồn.
GND (chân 20)
Chân nối đất.
Port 0
Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu
được sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL.
Khi mức 1 được viết vào các chân của port 0, các chân này có thể được
dùng như là các ngõ nhập tổng trở cao.
Port 0 có thể được định cấu hình để hợp kênh giữa bus địa chỉ và
bus dữ liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ
chương trình ngoài. Ở chế độ này, P0 có các điện trở pullup bên trong.
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập
trình Flash, và xuất ra các byte code khi kiểm tra chương trình. Cần có các
điện trở pullup bên ngoài khi thực hiện việc kiểm tra chương trình.
- Xem thêm -