LỜI NÓI ĐẦUTrong 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
Trang 1LỜ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
Trang 2CHƯƠNG 1 TỔNG QUAN VỀ CÔNG NGHỆ.
1.1 Giới thiệu về chuẩn giao tiếp RS232
Cổng nối 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 Việc truyền dữ liệu qua cổng 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 dẫn Ưu điểm của cổng nối tiếp là
có khả năng truyền được đi xa, ít bị gây nhiễu so với khi sử dụng cổng song song,
và tiết kiệm được dây dẫn
Ở đây ta xét loại 9 chân, có hình dáng và chức năng như hình dưới
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
Trang 3U 2
C D P 6 4 0 2
V C C
1
F E 1 4
R R C
1 7
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
T B R 3
2 8
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
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
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
Bố trí chân của UART CDP6402 Những tính chất sau đây đặc trưng cho CDP6402
• Công suất tiêu thụ không đáng kể
• Tốc độ baud: Đến 200kbaud khi điện áp nguồn nuôi +5V
Đến 400kbaud khi điện áp nguồn nuôi +10V
• Điện áp nguồn nuôi từ 4V đến 10,5 V
• Đặt khuôn mẫu truyền dữ liệu bằng phần cứng
• Sử dụng đơn giản
• Giá thành gần 10USD (năm 1996)
Như ở trong mục trước đã đề cập đến, để chuyển dữ liệu qua giao diện nối tiếp đã có các chip được tích hợp ở mức độ cao Một linh kiên loại này là 1 bộ UART CDP 6402 của hẵng HARIS Bộ UART này chứa trên cùng một chip một bộ gửi và bộ nhận nối tiếp hoạt động toàn độc lập với nhau Bộ gửi nối tiếp truyền đi sau một xung khởi động các dữ liệu xếp kề sát qua một đường dẫn tới bộ nhận và gửi kèm theo một cách tự động các bit khởi động và bit dừng Bên ộ nhận lại có được các dữ liệu đã nối tiếp đến để sử dụng song song Điểm đáng lưu ý ở vi mạch này là khuôn mẫu truyền dữ liệu có thể được thiết lập trước bằng phần cứng qua các
Trang 4mức logic ở các chân Nhờ vậy mà vi mạch này có thể được sử dụng một cách vạn năng
Bảng dưới đây mô tả chức năng của các chân riêng biệt
Chân Ký hiệu Mô tả
1 VDD Cực dương của nguồn nuôi
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
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
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ị
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
ở RRC, các tín hiệu giữ nhịp của bộ nhận nối tiếp được dẫn
Trang 5đến Tần số cần phải được thiết lập ở giá trị 16 lần lớn hơn tốc độ
18 DRR Data Receiver Reset
Một xung low ở chân này đặt DR trở lại low
DR=1 báo hiệu là các dữ liệu đã được nhận một cách đầy đủ
và có mặt ở các lối ra D7OUT đến D0OUT Trước khi 1 byte
dữ liệu có giá trị tiếp theo có thể được báo hiệu, tín hiệu DR cần phải được đặt lại bằng một xung âm ở DRR
20 RRI Receiver Register Input
Ở chân này tín hiệu nối tiếp được dẫn đến
Với mức Higt, việc Reset linh kiện sẽ được thực hiện PE,
FE, OE và DR được đặt lại, trong khi TRE, TBRE và TRO được đặt lên mức cao
22 TBRE Tranmitter Bufer Register Empty
Một mức cao ở chân này báo hiệu là thanh ghi của bộ gửi đang trống và sẵn sang tiếp nhận dữ liệu mới
23 TBRL Tranmitter Control Register Load
Một xung low sẽ xóa để gửi đi các bit dữ liệu Bằng sườn dương các dữ liệu xếp kề sát, song song D7IN đến D0IN sẽ được truyền vào thanh ghi của bộ gửi và sau đó được gửi đến bên nhận theo cách nối tiếp với bit khởi động và bit dừng
24 TRE Tranmitter Register Empty
Một mức cao sẽ báo hiệu là linh kiện đã làm xong việc gửi
25 TRO Tranmitter Register Output
Các bit dữ liệu xếp kề sát song song D0IN đến D7IN dược gửi bao gồm bit khởi động và bit dừng qua đường dẫn TRO tới bên nhận
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
Trang 628 D2IN * D0IN là LSB
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
2
0 0 0 0 0
CLS 1
0 0 0 0 0
PI
0 0 0 0 1
EP E
0 0 1 1 X
SB S
0 0 0 1 0
DATA
BITS 5 5 5 5 5
PARITY BITS
Lẻ (old) Lẻ Chẵn Chẵn disabled
STOP BITS
1 1,5 1 1,5 1
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 0 0
Disable Lẻ Lẻ Chẵn Chẵn
1 1,5 1 1,5 1
0 1 1 1 1
1 1 0 0 0 0
1 1 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 1 1,5 1 1
1 1 1
0 0 1 1
1 1 0 0
X X 0 0
0 1 0 1
7 7 8 8
Disable Disable
Lẻ
Lẻ
1 1,5 1 1,5
Trang 71 1 0 1 0 8 Chẵn 1
1 1
1 1 1
0 1 1
1 X x
1 0 1
8 8 8
Chẵn Disable Disable
2 1 2
40 TRC Transmitter Register Clock
Ở TRC có tín hiệu giữ nhịp của bộ gửi nối tiếp Tần số cần phải được thiết lập lớn hơn tốc độ baud 16 lần
1.2.2 Vi mạch MAX232
Hầu như tất cả các thiết bị số như vi điều khiển đều sử dụng các mức logic TTL hay CMOS, trong khi điện áp truyền thông RS 232 là -25V đến 25V Vì vậy, để kết nối một thiết bị với một kênh RS 232 ta phải thay đổi mức điện áp của RS 232 trở lại mức từ 0 đến 5V hoặc ngược lại Bộ chuyển đổi được sử dụng rộng rãi là
MAX-232 (và tương thích với bộ vi xử lý) IC này cũng có hai luồng nhận và hai luồng gửi trên cùng một thiết bị IC MAX232 có chân 16 với một điện thế cung cấp 5V Pin
16 được sử dụng như điện áp đầu vào (FCC), pin 15 như mặt đất Pin 8 và 13 được
sử dụng như là đầu vào (nhận) RS-232, trong khi các chân 7 và 14 như đầu ra (gửi) RS232 Cấu hình các chân của IC MAX232 được thể hiện trong hình:
Ghép nối giữa RS 232 và MAX 232:
Trang 8CHƯƠNG 2 THIẾT KẾ MẠCH GHÉP NỐI MÁY TÍNH
2.1 Tính toán mạch chuyển đổi chuẩn điện áp 0 – 5V 2.1.1 Chuyển đổi cho kênh ±20V (-20V to +20V)
Ta sử dụng mạch phân áp
Trang 9R 1
3 0 0 R
R 2
1 0 0 R
- 2 0 V t o + 2 0 V
- 5 V t o + 5 V
Ta có Ura = 2
1 2 vao
R U
Các thông số tính toán được trình bày ở trên
Sử dụng cầu điện trở đưa về dải điện áp cần thiết 0 – 5V
R 2
R 3
R 1
V C C
Các thông số tính toán trình bày như hình dưới
Trang 10R 3
1 0 0 k
R 4
1 0 0 K
+ 5 V
max
a max
1
2
e
U
R
2.1.2 Chuyển đổi kênh ±10V (-10V to +10V)
Sủ dụng cầu điện trở
Nguyên lý và các thông số tính toán trình bày ở phần dưới
a Nguyên lý
R 2
R 3
R 1
U h
U a
U e
Các thông số tính toán
R 2
5 0 K
R 3
1 0 0 K
R 1
1 0 0 K
+ 5 V
2.1.3 Chuyển đổi kênh ±5 (-5V to +5V)
Trang 11Sử dụng cầu phân áp như các phần trên ta có các thông số tính toán như sau
R 3
1 0 0 k
R 4
1 0 0 K
+ 5 V
2.1.4 Chuyển đổi kênh ±2 (-2V to +2V)
Ta sử dụng mạch phân áp để chuyển về dải 0V to +2V
Các thông số tính toán được
R 2
1 0 0 k
- 2 V t o + 2 V 0 t o + 2 V
+ 2 V
R 1
1 0 0 K
Sau đó dùng mạch khuyếch đại thuật toán để đưa về dải 0 to +5V
Nguyên lý
9
10 9
R
R R
U
Trang 12vao
U =0 ÷2V
=> 23
9
10 =
R
R
chọn R9=100 kΩ
=> R10=150 kΩ
2.1.5 Chuyển đổi kênh ±1 (-1V to +1V)
Ta sử dụng cầu điện trở để đưa về dải 0 to +1V
R 2
1 0 0 k
- 1 V t o + 1 V 0 t o + 1 V
+ 1 V
R 1
1 0 0 K
Sau đó dùng mạch khuyếch đại thuật toán để đưa về dải 0 to +5V
7
8 7
R
R R
U
ra
vao
U =0 ÷1V
Trang 13=> 4
7
R
R
chọn R7=50 kΩ
=> R8=200 kΩ
2.1.6 Chuyển đổi dải -0.5V to +0.5V
Sử dụng mạch phân áp chuyển về dải 0 to +0.5V
R 2
1 0 0 k
+ 0 5 V
R 1
1 0 0 K
Sau đó dùng mạch khuyếch đại thuật toán để đưa về dải 0 to +5V
R 2
0 t o + 5 V
+
-U 5 A
2
R 1
0
0 - 0 5 V
1
R
+
=
ra
vao
U =0 ÷ 0.5V
=> 2
1
10
R
R = chọn R1=10 kΩ
=> R2=100 kΩ
Trang 141.2.7 Chuyển đổi kênh -0.2V to +0.2V
Dùng cầu điện trở chuyển về dải 0 to +0.2V
R 2
1 0 0 k
- 0 2 V t o + 0 2 V 0 t o + 0 2 V
+ 0 2 V
R 1
1 0 0 K
Sau đó dùng mạch khuyếch đại thuật toán để đưa về dải 0 to +5V
R 2
0 t o + 5 V
+
-U 5 A
2
R 1
0
0 - 0 5 V
1
R
+
=
ra
vao
U =0 ÷ 0.2V
=> 2
1
25
R
R = chọn R1=10 kΩ
=> R2=250 kΩ
2.2 Mạch ghép nối MAX232
Trang 152.2.2 Mạch kết nối hoàn chỉnh
Trang 16CHƯƠNG 3 THIẾT KẾ GIAO DIỆN VÀ VIẾT PHẦN MỀM 3.1 Giao diện phần mềm
Phần mềm viết trên VB6
Dim A(1 To 6) As Integer
Dim b(1 To 6) As Integer
Dim m1(1 To 6) As Integer
Dim m2(1 To 6) As Integer
Dim i, j As Integer
Private Sub Command1_Click()
MsgBox "day la phan mem cho card ghep noi RS232 7 kenh don" End Sub
Trang 17Private Sub Command2_Click()
For j = 1 To 7
A(1) = MSComm1.Input 'nhan bit cao nhat d7 tu adc
For i = 2 To 7
m2(i) = m1(i) + 4
MSComm1.Output = Chr(m2(i)) 'dua chan RTS len cao
MSComm1.Output = Chr(m2(i)) 'dua suon cao xuong thap
A(i) = MSComm1.Input 'nhan cac bit du lieu tu d6 toi d0
Next i
MSComm1.Output = Chr(m1(i)) 'gui du lieu chon kenh thu i
b(j) = A(0) * 2 ^ 7 + A(1) * 2 ^ 7 + A(2) * 2 ^ 7 + A(3) * 2 ^ 7 + A(4) * 2 ^ 7 + A(5) * 2 ^ 7 + A(6) * 2 ^ 7 + A(7)
Next j
b(1) = b(1) / 6.4 'phuc hoi gia tri thang do 1
b(2) = b(2) / 12.8 'phuc hoi gia tri thang do 2
b(3) = b(3) / 25.6 'phuc hoi gia tri thang do 3
b(4) = b(4) / 0.128 'phuc hoi gia tri thang do 4
b(5) = b(5) / 0.256 'phuc hoi gia tri thang do 5
b(6) = b(6) / 0.512 'phuc hoi gia tri thang do 6
b(7) = b(7) / 1.28 'phuc hoi gia tri thang do 7
Text1.Text = Str(b(1)) & vol
Text2.Text = Str(b(2)) & vol
Text3.Text = Str(b(3)) & vol
Text4.Text = Str(b(4)) & milivol
Text5.Text = Str(b(5)) & milivol
Text6.Text = Str(b(6)) & milivol
Text6.Text = Str(b(6)) & milivol
End Sub
Trang 18Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True
m1(1) = 0 'du lieu chon kenh 1
m1(2) = 1 'du lieu chon kenh 2
m1(3) = 2 'du lieu chon kenh 3
m1(4) = 3 'du lieu chon kenh 4
m1(5) = 4 'du lieu chon kenh 5
m1(6) = 5 'du lieu chon kenh 6
m1(7) = 6 'du lieu chon kenh 7
End Sub
Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False
End Sub