計(jì)算機(jī)傳輸數(shù)據(jù)有并行和串行兩種方式。
串行通信采用兩種方式:同步方式和異步方式。
一、串行通信基礎(chǔ)
串行通信接口:計(jì)算機(jī)利用異步通訊適配器和調(diào)制解調(diào)器(modem)通過rs-232串行接口與外進(jìn)行遠(yuǎn)距離通信。近距離通信不用modem。
在異步通信方式中,每個(gè)字符都需要加上起始位、校驗(yàn)位和終止位,此過程稱為“組幀(framing)”。
串行通信的數(shù)據(jù)傳輸率用bps(bits per second)來表示,在計(jì)算機(jī)中就是波特率。
rs 232串行通信接口:為了兼容各廠家生產(chǎn)的數(shù)據(jù)通信設(shè)備,1960年電子工業(yè)協(xié)會(huì)(eia)制定了rs-232接口標(biāo)準(zhǔn)。
ibm pc通信端口
ibm pc機(jī)提供兩個(gè)串行接口com1和com2。80x86兼容機(jī)可以連接4個(gè)通信端口,它們的編號(hào)為com1~4(相應(yīng)的bios編號(hào)為com0~3)。
如果微機(jī)系統(tǒng)設(shè)置了com端口,則設(shè)置的每個(gè)com端口的i/o地址就寫到bios數(shù)據(jù)區(qū)的0040:0000~0040:0007字節(jié),每個(gè)com地址占用2個(gè)字節(jié)。
二、串行口功能調(diào)用
dos串行通信口功能
使用dos命令mode可以設(shè)置串行通信參數(shù),如數(shù)據(jù)的字長、波特率、校驗(yàn)位和終止位數(shù)。設(shè)置串行通信參數(shù)命令的一般格式為:
modecomm:b,p,d,s
這里m表示com的端口號(hào)(1~4);b是波特率,用波特率數(shù)的高兩位數(shù)字來表示;p是校驗(yàn)位(n為無校驗(yàn),o為奇校驗(yàn),e為偶校驗(yàn));d表示數(shù)據(jù)的字長(5,6,7,8位、默認(rèn)值為7位);s是終止位的位數(shù)(1,1.5或2位)。
dos手冊中稱串行通信口為輔助設(shè)備。dos的int 21h調(diào)用,對com1操作。
ah=3:從com1讀一個(gè)字符到al中。
ah=4:將dl中的字符傳送給com1。
bios串行通信口功能:int 14h調(diào)用。
ah=0:初始化串行口,al=初始化參數(shù)(圖1),dx=通信口號(hào)(com1為0號(hào),com2為1號(hào))。在ah中返回通信口狀態(tài)(圖2),al中返回調(diào)制解調(diào)器狀態(tài)(圖3)。
ah=1:向串行口(dx號(hào))寫al指定的字符。寫成功ah7=0,al不變;寫失敗ah7=1,ah6~0=通信口狀態(tài)。
ah=2:從串行通信口(dx號(hào))讀字符。讀成功ah7=0,al為所讀字符;讀失敗ah7=1,ah6~0=通信口狀態(tài)。
ah=3:取串行通信口(dx號(hào))狀態(tài)。在ah中返回通信口狀態(tài),al中返回調(diào)制解調(diào)器狀態(tài)。