LỜI NÓI ĐẦU
Trong mấy chục năm qua , khoa học máy tính và xử lý thông tin có những
bước tiến vược bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng
khoa học kỹ thuật hiện đại. Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ
thuật số làm cho ngành điện tử trở nên phong phú và đa dạng hơn. Nó góp phần rất
lớn trong việc đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt
động sản xuất ,kinh tế và đời sống xã hội. Từ những hệ thống máy tính lớn đến
nhứng hệ thống máy tính cá nhân , từ những việc điều khiển các máy công nghiệp
đến các thiết bị phục vụ đời sống hằng ngày của con người. Với mong muốn tìm
hiểu , ứng dụng những tiến bộ của khoa học kỹ thuật hiện đại vào phục vụ sản xuất
và phục vụ đời sống con người
Hơn nữa được sự hướng dẫn và gíúp đỡ của thầy cô trong khoa em đã hoàn thành đề
tài của mình là thiết kế modul ghép nối máy tính sử dụng giao diện RS232. Do trình
độ còn hạn chế nên không tránh khỏi thiếu sót mong các thầy cô chỉ bảo thêm
Sau đây em xin trình bày thiết kế của mình
CHƯƠNG 1. TỔNG QUAN VỀ CÔNG NGHỆ.
1.1. Giới thiệu về chuẩn giao tiếp RS232
1.1.1. Đặt vấn đề
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng
điều khiển, đo lường Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ
thuật được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính.Nó là
một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất
là 2 thiết bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến
25.4m, tốc độ 20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Ý
nghĩa của chuẩn truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một
bit được gửi đi dọc theo đường truyền.
Có hia phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B
và RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn
RS232C hiện vẫn được dùng và tồn tại thường được gọi là tên ngẵn gọn là
chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là
của bộ phát.
Mức điện áp của tiêu chuẩn RS232C ( chuẩn thường dùng bây giờ) được mô tả
như sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính
vì từ - 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi
giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua
quãng quá độ trong một thơì gian ngắn hợp lý. Điều này dẫn đến việc phải hạn
chế về điện dung của các thiết bị tham gia và của cả đường truyền. Tốc độ
truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện
nay chỉ hỗ trợ với tốc độ 19,2 kBd .
1.1.5. Cổng RS232 trên PC
Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng
Com hay cổng nối tiếp RS232. Số lượng cổng Com có thể lên tới 4 tùy từng loại
main máy tính.Khi đó các cổng Com đó được đánh dấu là Com 1, Com 2, Com
3 Trên đó có 2 loại đầu nối được sử dụng cho cổng nối tiếp RS232 loại 9 chân
(DB9) hoặc 25 chân (DB25). Tuy hai loại đầu nối này có cùng song song nhưng
hai loại đầu nối này được phân biệt bởi cổng đực (DB9) và cổng cái (DB25)
Ta xét sơ đồ chân cổng Com 9 chân:
Trên là các kí hiệu chân và hình dạng của cổng DB9
Chức năng của các chân như sau:
+ chân 1 : Data Carrier Detect (DCD) : Phát tín hiệu mang dữ liệu
+ chân 2: Receive Data (RxD) : Nhận dữ liệu
+ chân 3 : Transmit Data (TxD) : Truyền dữ liệu
+ chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích
hoạt bởi bộ phận khi muốn truyền dữ liệu
+ chân 5 : Singal Ground ( SG) : Mass của tín hiệu
+ chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ
Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,
9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường dùng
tốc độ là 19200
Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian
chuyển mức logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ
bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic
càng phải nhỏ. Điều này làm giới hạn tốc Baud và khoảng cách truyền.
c) Bit chẵn lẻ hay Parity bit
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi
khi truyền dữ liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một
số lỗi trong quá trình truyền . Do đó trong chuẩn RS232 sử dụng một kỹ thuật
kiểm tra chẵn lẻ.
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các
bit "1" được gửi trong một khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9 Nếu
như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp
không mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này
không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi.
Còn cách thức truyền dẫn. Phần này tôi không đề cập các bạn vui lòng xem
trong giáo trình
1.2. Giới thiệu về các linh kiện sử dụng trong bài.
1.2.1. Vi mạch UART CDP 6402
U 2
C D P 6 4 0 2
V C C
1
F E
1 4
R R C
1 7
T B R 4
2 9
T B R 5
3 0
T B R 6
3 1
T B R 7
3 2
T B R 8
3 3
O E
1 5
P E
1 3
T R E
2 4
T B R E
2 2
C R L
3 4
D R R
1 8
E P E
3 9
M R
2 1
P I
3 5
R R D
4
Chân Ký hiệu Mô tả
1 VDD Cực dương của nguồn nuôi
2 NC Không dùng
3 GND Mass đất, 0V
4 RRD Receive Register Disable
Khi tín hiệu này dẫn đến mức high thì các đường dẫn lối ra
D0OUT đến D7OUT chuyển sang trạng thái điện trở cao
5 D7 OUT Các bi dữ liệu đã đến theo cách nối tiếp ở chân 20 sẽ xuất
6 D6 OUT Hiện theo cách song song ở các lối ra ba trạng thái
7 D5 OUT D7OUT đến D0OUT
8 D4 OUT
9 D3 OUT
10 D2 OUT
11 D1OUT
12 D0 OUT
13 PE Parity Error: sai số chẵn lẻ
Một mức logic 1 ở chân này báo hiệu là bit chẵn lẻ đã được
lập trình không đồng nhất với bit nhận được. Nếu như bit
chẵn lẻ không được kích hoạt thì chân này nằm ở mức low
14 FE Sai số Framming
Mức High ở chân này báo hiệu là bit dừng đầu tiên là không
có giá trị. FE giữ nguyên High cho đến khi nhận được một
bit dừng có giá trị
15 OE Sai số Overrun
OE sau đó trở nên High, nếu như một byte mới đã nhận.
Trước khi byte cũ được đọc từ thanh ghi nhận
16 SFD Status Flag Disable
Một mức cao ở chân này có nghĩa là lối ra PE, FE, OE, DE,
và TBRL trở nên có điện trở cao
17 RRC Receiver Register Clock
26 D0IN Các bit dữ liệu ở các lối vào này được giửi trực tiếp đến nơi
nhận
27 D1IN
28 D2IN * D0IN là LSB
29 D3IN * D7IN là MSB
30 D4IN
31 D5IN
32 D6IN
33 D7IN
34 CLR Control Register Load: nạp thanh ghi điều khiển. Một mức
High nạp các bit điều khiển vào thanh ghi điều khiển.
35 PI CLS
2
0
0
0
0
0
CLS
1
0
0
0
0
0
PI
0
0
0
0
BITS
1
1,5
1
1,5
1
36 SBS 0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
X
0
0
1
1
0
0
0
0
0
0
0
0
X
X
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Disable
Disable
Lẻ
Lẻ
Chẵn
Chẵn
1
1,5
Lẻ
Lẻ
1
1,5
1
1,5
1 1 0 1 0 8 Chẵn 1
39 EPE 1
1
1
1
1
1
0
1
1
1
X
x
1
0
1
8
8
8
Chẵn
Disable
Disable
2
1
Sau đó, khi S = [0] thì Q = [1] và = [0].
Khi R = [1] thì = [1] và Q = [0].
Tóm lại, khi S = [1] thì Q = [1] và khi R = [1] thì Q = [0] bởi vì = [1], transisitor
mở dẫn, cực C nối đất. Cho nên điện áp không nạp vào tụ C, điện áp ở chân 6 không
vượt quá V2. Do lối ra của Op-amp 2 ở mức 0, FF không reset.
Giai đoạn ngõ ra ở mức 1:
Khi bấm công tắc khởi động, chân 2 ở mức 0.
Vì điện áp ở chân 2 (V-) nhỏ hơn V1(V+), ngõ ra của Op-amp 1 ở mức 1 nên S =
[1], Q = [1] và = [0]. Ngõ ra của IC ở mức 1.
Khi = [0], transistor tắt, tụ C tiếp tục nạp qua R, điện áp trên tụ tăng. Khi nhấn
công tắc lần nữa Op-amp 1 có V- = [1] lớn hơn V+ nên ngõ ra của Op-amp 1 ở mức
0, S = [0], Q và vẫn không đổi. Trong khi điện áp tụ C nhỏ hơn V2, FF vẫn giữ
nguyên trạng thái đó.
Giai đoạn ngõ ra ở mức 0:
Khi tụ C nạp tiếp, Op-amp 2 có V+ lớn hơn V- = 2/3 VCC, R = [1] nên Q = [0]
và = [1]. Ngõ ra của IC ở mức 0.
Vì = [1], transistor mở dẫn, Op-amp2 có V+ = [0] bé hơn V-, ngõ ra của Op-amp
2 ở mức 0. Vì vậy Q và không đổi giá trị, tụ C xả điện thông qua transistor.
Kết quả cuối cùng: Ngõ ra OUT có tín hiệu dao động dạng sóng vuông, có chu kỳ
ổn định
CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG
2.1. Mạch dao động sử dụng NE555
U 1 0
N E 5 5 5
O U T
3
R S T
4
V C C
8
1 2
R 2 O U T
9
T 1 I N
1 1
T 2 I N
1 0
R 1 I N
1 3
R 2 I N
8
T 1 O U T
1 4
T 2 O U T
7
C 1
1 u F
C 2
1 u F
T X D
U 9
N O T
12
P 1
C O N N E C T O R D B 9
5
9
4
8
3
1
2
R L 1
R L 2
R L 3
R L 1
R L 2
R L 3
V C C
V C C
V C C
C C P L 1
C C P L 2
C C P L 3
U 1 1
U L N 2 8 0 3
C O M
1 0
I N 1
1
I N 2
2
I N 3
3
I N 4
4
I N 5
5
I N 6
6
R R C
1 7
D R
1 9
R R I
2 0
T R O
2 5
T R C
4 0
R B R 1
1 2
R B R 2
1 1
R B R 3
1 0
R B R 4
9
R B R 5
8
R B R 6
7
R B R 7
6
R B R 8
5
T B R 1
2 6
T B R 2
2 7
R R D
4
S B S
3 6
S F D
1 6
T B R L
2 3
C L S 1
3 8
C L S 2
3 7
R L 1
R E L A Y S P S T
4
3
1
2
R L 2
R E L A Y S P S T
4
3
1
2
R L 3
R E L A Y S P S T
4
3
1
2
T 1 I N
1 1
T 2 I N
1 0
R 1 I N
1 3
R 2 I N
8
T 1 O U T
1 4
T 2 O U T
7
C 1
1 u F
C 2
1 u F
T X D
U 9
N O T
12
P 1
C O N N E C T O R D B 9
5
9
4
8
3
7
2
6
I N 1
I N 1
V C C
c b 1
c b 2
c b 3
L O A I 1
L O A I 2
L O A I 3
U 1 1
U L N 2 8 0 3
C O M
1 0
I N 1
1
I N 2
2
I N 3
3
I N 4
4
I N 5
5
I N 6
6
I N 7
7
I N 8
8
O U T 1
Dim sanpham1, sanpham2, sanpham3 As Integer
Private Sub Command1_Click()
a = 1
Timer1.Interval = 5
End Sub
Private Sub Command2_Click()
If MsgBox("Ban that su muon thoat", vbOKCancel, "Exit") = vbOK Then
End
End If
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub Timer1_Timer()
If a = 1 Then
b = MSComm1.Input ' cap nhat cac cam bien tac dong
For i = 1 To 20 ' cho nhan xong cac bit
Next i
If b = 1 Then
sanpham1 = sanpham1 + 1
MSComm1.Output = Chr(1) 'khoi dong may phan loai 1
Text1.Text = sanpham1 & sanpham
End If
If b = 2 Then
sanpham2 = sanpham2 + 2