第11章串行通信接口_第1頁
第11章串行通信接口_第2頁
第11章串行通信接口_第3頁
第11章串行通信接口_第4頁
第11章串行通信接口_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、接口與通訊技術接口與通訊技術武漢科技大學武漢科技大學計算機科學與技術學院計算機科學與技術學院第第11 11章串行通信接口章串行通信接口 本章內容本章內容11.1 11.1 串行通信的基本概念串行通信的基本概念11.2 11.2 串行通信中的傳輸速率控制串行通信中的傳輸速率控制11.3 11.3 串行通信中的數據格式串行通信中的數據格式11.4 11.4 串行通信接口標準串行通信接口標準11.5 11.5 串行通信接口電路串行通信接口電路11.6 11.6 用戶擴展的串行通信接口用戶擴展的串行通信接口11.7 11.7 系統配置的串行通信接口系統配置的串行通信接口11.1 11.1 串行通信的基

2、本概念串行通信的基本概念11.1.1 串行通信的基本特點串行通信的基本特點 在1根信號線上分時傳送多位信息;既傳數據又傳聯絡信息 為了區分數據和聯絡信息,有固定的數據格式(同步和異步) 對信號的邏輯定義與TTL不兼容 傳輸速率需要控制:雙方約定波特率 串行通信易受干擾,需進行差錯的檢測和控制既適用于近距離,又可用于遠程;遠程時需MODEM11.1.2 11.1.2 串行通信傳輸的工作方式串行通信傳輸的工作方式( (制式制式) )單工單工:數據只能單向傳送全雙工:全雙工:可同時進行雙向傳送半雙工:半雙工:可分時進行雙向傳送方向切換發送器接收器接收器發送器A站B站信號地全雙工全雙工發送器接收器A站

3、B站信號地單工單工發送器接收器發送器接收器A站B站信號地半雙工半雙工11.1.3 11.1.3 串行通信中的差錯檢測串行通信中的差錯檢測1. 1.誤碼率的控制誤碼率的控制誤碼率誤碼率數據經傳輸后發生錯誤的位數與總傳輸位數之比;一般要求達到10-6數量級減少誤碼率措施減少誤碼率措施進行可靠性設計(軟硬件);檢糾錯編碼2.2.檢錯糾錯編碼的使用檢錯糾錯編碼的使用基本通信規程:基本通信規程:奇偶校驗、方陣碼檢錯 反饋重發高級通信規程:高級通信規程:循環冗余碼(CRC)檢錯 自動糾錯3.3.錯誤狀態的分析與處理錯誤狀態的分析與處理奇偶校驗錯:奇偶校驗錯:請求重發溢出錯:溢出錯:降低發送速率或在接收方設

4、置FIFO緩沖器幀格式錯:幀格式錯:核對雙方的數據格式超時錯:超時錯:由于硬件接口電路速度跟不上產生4.4.錯誤檢測只在接收方進行錯誤檢測只在接收方進行11.1.4 11.1.4 串行通信的同步方式串行通信的同步方式1. 1.串行通信中的同步問題串行通信中的同步問題(1)(1)字符同步方案字符同步方案雙同步(BISYNC)通信:12個特定的同步字符高級數據鏈路控制同步通信HDLC:特定0/1序列(01111110)起止式異步通信:起始位(2)(2)位同步方案位同步方案接收時鐘控制每一位數據的接收2.2.串行通信的基本方式串行通信的基本方式(1)(1)異步通信方式異步通信方式以字符為單位傳輸,每

5、個字符隨機出現在數據流中字符與字符之間是異步的,而字符內位與位之間是同步的(2)(2)同步通信方式同步通信方式以數據塊(字符塊)為單位傳輸字符與字符之間以及字符內位與位之間都是同步的11.1.5 11.1.5 串行通信中的調制與解調串行通信中的調制與解調 電話線電話線: 3003400Hz的音頻模擬信號調制解調器調制解調器(MODEM,調制器+解調器)的作用作用:發送時將二進制數據調制成音頻模擬信號接收時對音頻模擬信號進行解調還原成數字信號數據通信設備數據通信設備(DCE)或數傳機數傳機(DATA SET)調制解調器的種類調制解調器的種類幅移鍵控(ASK)、頻移鍵控(FSK)、相移鍵控(PSK

6、)頻率f01+-輸出S1S0數字信號頻率f1頻率f0FSK:11.2 11.2 串行通信中的傳輸速率控制串行通信中的傳輸速率控制11.2.1 11.2.1 數據傳輸速率控制的實現方法數據傳輸速率控制的實現方法 數字通信中的傳輸速率稱為波特率,單位波特 數據傳輸率的控制波特率時鐘發生器和波特率因子11.2.2 11.2.2 波特率與發送波特率與發送/ /接收時鐘接收時鐘1. 1.波特率波特率:單位時間內傳輸串行數據的位數,1波特=1b/s位周期2.2.發送發送/ /接收時鐘接收時鐘(1)執行數據的發送和接收:發送時鐘的下降沿從發送移位寄存器輸出;接收時鐘的上升沿移入接收移位寄存器(2)進行位同步

7、發送發送/ /接收時鐘對數據發送接收時鐘對數據發送/ /接收的控制接收的控制0111000111000起始位發送的數據接收的數據收/發時鐘理想情況理想情況在碼元中心采樣 收發時鐘頻率嚴格相等 采樣錯位采樣錯位(f收f發)111000111000起始位發送的數據接收的數據發送時鐘1接收時鐘11.2.2 11.2.2 波特率與發送波特率與發送/ /接收時鐘接收時鐘3.3.波特率因子波特率因子:發送/接收1位數據所需的時鐘脈沖個數TXC(RXC)=BaudFactor同步:Factor=1;異步:Factor=1、16、641/0起始位1/0接收時鐘數據檢測到起始位前沿8個16個16個起始位中心位采

8、樣位采樣1616倍波特率時鐘的作用倍波特率時鐘的作用提高了采樣定位的分辨率提高可靠性提高了通信的抗干擾能力11.2.2 11.2.2 波特率與發送波特率與發送/ /接收時鐘接收時鐘4.4.波特率時鐘發生器波特率時鐘發生器:不是所有串行接口芯片內都包含5.5.波特率時鐘的使用波特率時鐘的使用Factor一定,改變TXC控制Baud例例8.18.1 Factor=16個/位,第一次采樣TXC1=38400Hz,第二次TXC2=19200Hz;兩次通信的波特率各為多少解:解:Baud1=TXC1Factor=3840016=2400b/sBaud2=TXC2Factor=1920016=1200b/

9、s例例8.28.2 甲乙兩機通信,甲機發送時鐘TXC=38400Hz,Factor1= 16個/位;乙機Factor2=64個/位,求乙機的接收時鐘頻率RXC解:解:RXC=BaudFactor2=(TXCFactor1)Factor2=384001664=153600Hz6.6.傳輸距離與傳輸速率的關系傳輸距離與傳輸速率的關系傳輸線電氣特性一定情況下,直接傳輸最大距離隨速率的增加而減小11.2.3 11.2.3 波特率時鐘發生器設計波特率時鐘發生器設計( (略略) )例例8.38.3 設計一個波特率時鐘發生器,輸入時鐘CLK=1.19318MHz, Factor=16,輸出Baud=9600

10、b/s,按ESC退出解:解:通常用82C54A輸出方波作為串行通信的發送/接收時鐘N=CLKOUT=CLK(BaudFactor)=1.19318106(960016)8硬件設計硬件設計(選用T2)8251ATXDRXDSGTXCRXC三總線92582C54A82C55ACLK2GATE2OUT2PC6擴展總線1.19318MHz波特率時鐘發生器的軟件編程波特率時鐘發生器的軟件編程DATASEGMENTTC EQU 8;82C54A的T2初值DATA54EQU 306H;82C54A的T2地址CTRL54EQU 307H;82C54A控制口地址CTRL55EQU 303H;82C55A控制口地

11、址DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,CTRL54MOV AL,0B6H;82C54A方式字OUT DX,ALMOV DX,CTRL55MOV AL,80H;82C55A方式字OUT DX,ALMOV AL,0CHOUT DX,AL;PC6=0,關82C54ACALL LOAD;裝入計數初值波特率時鐘發生器的軟件編程波特率時鐘發生器的軟件編程( (續續) );給82C54A裝入計數初值的子程序LOADPROC NEARPUSH AXPUSH DXMOV DX,DATA54MOV AX

12、,TCOUT DX,ALMOV AL,AHOUT DX,ALPOP DXPOP AXRETLOADENDPCODEENDSEND STARTMOV DX,CTRL55MOV AL,0DH;PC6=1,啟動82C54AOUT DX,ALNOPLOP:MOV AH,08HINT 21HCMP AL,1BH;檢測ESC鍵JNE LOPMOV DX,CTRL55MOV AL,0CH;關閉82C54AOUT DX,ALMOV AX,4C00HINT 21H11.3 11.3 串行通信中的數據格式串行通信中的數據格式通信控制規程通信控制規程(傳輸控制規程、通信協議傳輸控制規程、通信協議)數據格式、同步方式

13、、傳輸速度、檢錯糾錯方式、控制字符定義等11.3.1 11.3.1 起止式異步通信數據格式起止式異步通信數據格式1. 特點特點字符隨機出現在數據流中字符之間有不定長的空閑位靠起始位和停止位定界1幀數據高可靠高可靠 低效率低效率11.3.1 11.3.1 起止式異步通信數據格式起止式異步通信數據格式( (續續) )2. 2. 起止式數據幀格式起止式數據幀格式起始位:起始位:1位,低電平數據位:數據位:58位,先低位后高位校驗位:校驗位:1位/0位,奇偶校驗停止位:停止位:1位、1.5位或2位,高電平空閑 位停止位 1,1.5奇偶校驗數據位(58位)起始位不限或2位有/無(先低后高位)1位0/10

14、1110/10/10/10/10/10LSBMSB第n個字符第n+1個字符712位位3. 3. 起起/ /止位的作用止位的作用定界一幀數據定界一幀數據建立收發雙方同步:建立收發雙方同步:起始位標志一幀開始,停止位標志著結束11.3.2 11.3.2 面向字符的同步通信數據格式面向字符的同步通信數據格式特點:特點:u一幀由一個數據塊(若干字節)組成,以12個同步字符開始u控制字符定界數據和控制傳輸SYNCSYNC:同步字符,單同步加1個,雙同步加2個SOHSOH:序始,引導標題標題:標題:源地址、目標地址、路由等附加信息STXSTX:文始,引導正文ETB/ETXETB/ETX:組終/文終,當正文

15、很長,分n幀傳送時,前n-1幀用ETB,最后1幀用ETXBCCBCC:塊校驗(從SOH到ETB/ETX),縱橫奇偶校驗或CRC校驗 SYNCSYNCSOH標題STX數據塊ETB/ETXBCC11.4 11.4 串行通信接口標準串行通信接口標準11.4.1 RS-232C11.4.1 RS-232C接口標準接口標準1. 關于關于RS-232C接口標準的說明接口標準的說明EIA與BELL公司1969年公布,020000b/s,數據終端設備(DTE)與數據通信設備(DCE)通信;接收和發送針對終端而言2. 信號線定義信號線定義數據線:數據線:TXDTXD(發送數據),DTEDCE;RXDRXD(接收

16、數據),DCEDTE狀態線:狀態線:DTRDTR(DTE準備好),DTEDCE;DSRDSR(DCE準備好),DCEDTE聯絡線:聯絡線:RTSRTS(請求發送),DTEDCE;CTSCTS(允許發送),DCEDTE振鈴信號:振鈴信號:RIRI(MODEM已收到交換臺的呼叫信號),DCEDTE載體檢出信號:載體檢出信號:DCDDCD(MODEM已收到數據載波信號),DCEDTE信號地線:信號地線:SGSG(公共地線)11.4.1 RS-232C11.4.1 RS-232C接口標準接口標準3.3.信號線的使用信號線的使用(1)遠程通信使用MODEM和電話線TxDRxDRTSCTSDTRDSRRI

17、DCDSG串口調制解調器計算機TxDRxDRTSCTSDTRDSRRIDCDSG串口調制解調器計算機電話線注:注:若不通過交換式電話系統,而使用專用線,則不用RI11.4.1 RS-232C11.4.1 RS-232C接口標準接口標準3.3.信號線的使用信號線的使用(2)近程通信(15m以內)零MODEM方式,微機通信中常用DTETxDRxDDTRDSRRTSCTSSGDTETxDRxDDTRDSRRTSCTSSGuTxD與RxD交叉相連:可實現全雙工通信uDTR與DSR反饋相連:只要終端準備好就認為DTE和DCE都準備好uRTS與CTS反饋相連:隨時都可以發送11.4.1 RS-232C11

18、.4.1 RS-232C接口標準接口標準4.4.電氣特性電氣特性(1)RS-232C標準對信號的邏輯定義(EIA邏輯)邏輯邏輯1 1:-5V-15V,負載端要求小于-3V邏輯邏輯0 0:+5V+15V,負載端要求大于+3V(2)EIA與TTL之間的轉換EIA:電壓極性、負邏輯TTL:電壓幅值、正邏輯不兼容不兼容發送:TTL EIA,MC1488,SN75150接收:EIA TTL,MC1489,SN75154MAX232可雙向轉換11.4.1 RS-232C11.4.1 RS-232C接口標準接口標準( (續續) )RXDTXDRTSCTSDSRSGDCD發送電流(+)發送電流(-)13142

19、34567891120222518接收電流(-)接收電流(+)RIDTRRXDTXDRTSCTSDSRSGDCD43267891RIDTR55. 5. 機械特性機械特性(1)連接器連接器DB-25型(還支持20MA電流環接口)DB-9型(2)通信電纜長度通信電纜長度速率低于20kb/s,誤碼率4%15米實際誤碼率允許10%20%,15米保守RS-232C缺點:缺點:單端發送和接收,易受共模干擾直接傳輸距離短,速率低;只能單點對單點通信11.4.2 RS-48511.4.2 RS-485接口標準接口標準1. RS-4851. RS-485接口標準的新概念與新定義接口標準的新概念與新定義(1)(1

20、)采用雙線平衡方式傳輸采用雙線平衡方式傳輸(2)(2)采用電位差值定義信號邏輯采用電位差值定義信號邏輯邏輯邏輯1 1:AA電平比BB高200mV;邏輯邏輯0 0:AA電平比BB低200mV(3)(3)允許多點對多點通信允許多點對多點通信(4)(4)采用采用4 4芯水晶頭連接器芯水晶頭連接器更方便方便且便宜便宜MAX491RS-485電平MAX491AABB平衡發送器差動接收器11.4.2 RS-48511.4.2 RS-485接口標準接口標準2. 2. 平衡發送器平衡發送器/ /差動接收器的作用差動接收器的作用MAX485用于半雙工;MAX491可用于全雙工(1)(1)收發器芯片收發器芯片MA

21、X485MAX485和和MAX491MAX491的引腳功能的引腳功能引腳引腳名稱名稱功能功能MAX485MAX49112RO接收器輸出:當VA-VB+200mV時,RO=1;當VA-VB-200mV時,RO=023RE接收器輸出允許:當RE=0時,允許輸出;當RE=1時,輸出呈高阻(三態)34DE驅動器輸出允許:當DE=1時,允許輸出;當DE=0時,輸出呈高阻(三態)45DI驅動器輸入:當DI=0時,Y=0,Z=1;當DI=1時,Y=1,Z=056, 7GND接地-9Y驅動器非反向輸出-10Z驅動器反向輸出6-A接收器非反向輸入和驅動器非反向輸出-12A接收器非反向輸入7-B接收器反向輸入和驅

22、動器反向輸出-11B接收器反向輸入814VCC正電源:4.75V VCC 5.25V11.4.2 RS-48511.4.2 RS-485接口標準接口標準2. 2. 平衡發送器平衡發送器/ /差動接收器的作用差動接收器的作用(2)(2)信號的邏輯定義信號的邏輯定義當差動輸入VA-VB+200mV時,輸出為邏輯1當差動輸入VA-VB-200mV時,輸出為邏輯0發送端發送端(驅動器驅動器)接收端接收端(接收器接收器)輸入(DI)輸出輸入輸出(RO)Y(A)Z(B)VA-VB110+0.2V1001-0.2V011.4.2 RS-48511.4.2 RS-485接口標準接口標準3. RS-4853.

23、RS-485接口標準的特點接口標準的特點采用差動發送/接收和雙絞線共模抑制比高,抗干擾能力強傳輸速率高,可達10Mb/s(傳輸15m),傳輸信號擺幅小(200mV)傳輸距離長,不使用MODEM,采用雙絞線,傳輸距離為1.2km(100kb/s)能實現多點對多點通信4. RS-4854. RS-485接口標準在多點對多點通信中的應用接口標準在多點對多點通信中的應用在一對平衡傳輸線的兩端配置終端電阻后,最多可實現32個驅動器和32個接收器共用同一傳輸線的多點對多點通信11.4.3 RS-232C11.4.3 RS-232C與與RS-485RS-485的轉換的轉換發送端:發送端:將TXD發出的數據經

24、MAX485/491轉換為差動信號通過雙絞線送出接收端:接收端:將雙絞線傳來的差動信號經MAX485/491轉換為單根數據信號由RXD接收進來11.5 11.5 串行通信接口電路串行通信接口電路11.5.1 11.5.1 串行通信接口的基本任務串行通信接口的基本任務(1)實現數據格式化異步:起止位的處理;同步:SYN等的處理(2)進行串-并轉換發送:并串;接收:串并(3)進行錯誤檢測(4)提供符合RS-232C接口標準的信號線遠程9根,近程3根(5)進行TTL與EIA邏輯關系及邏輯電平的轉換(6)進行數據傳輸速率的控制選擇和控制波特率11.5.2 11.5.2 串行通信接口電路的組成串行通信接

25、口電路的組成可編程串行通信接口芯片(同步收/發器、異步收/發器)、波特率時鐘發生器、EIA與TTL轉換器、地址譯碼電路常用串行通信接口芯片:常用串行通信接口芯片:16450、8250、16550、8251A11.6 11.6 用戶擴展的串行通信接口用戶擴展的串行通信接口8251A8251A支持異步起止式和同步面向字符的數據格式11.6.1 8251A11.6.1 8251A的外部特性的外部特性(28引腳)1. 面向面向CPU的引腳的引腳(13)D07、CS、RD、WRC/D:端口選擇;=0,數據口;=1命令口或狀態口RESET:復位,高有效,復位后等待接收方式字2. 面向面向MODEM的引腳的

26、引腳(6)6根RS-232C標準信號線:TXD、RXD、DTR、DSR、RTS、CTS3. 狀態及時鐘信號狀態及時鐘信號(7) TXRDY/RXRDY發送/接收準備好,高有效,引發中斷或供CPU查詢TXEMPTY發送器空,高有效,半雙工方式用于傳輸方向切換SYNDETSYN檢出,同步通信中表示接收端已收到同步字符TXC/RXC發送/接收時鐘;CLK工作時鐘11.6.2 8251A11.6.2 8251A的編程模型的編程模型1. 1. 內部結構內部結構發送器和接收器:發送器和接收器:串-并轉換;格式化;奇偶校驗;接收/發送讀讀/ /寫控制邏輯:寫控制邏輯:方式命令/工作命令/狀態字/數據擴展擴展

27、8251A8251A的地址:的地址:數據口308H,控制口/狀態口309H讀/寫控制 邏輯數據總線緩沖器D0D7CLKRDWR調制控制CSC/DRESETDTRCTSDSRRTS發送緩沖器發送控制接收緩沖器接收控制發送器接收器TxDTxEMPTYTxRDYTxCRxDSYNDETRxRDYRxC11.6.2 8251A11.6.2 8251A的編程模型的編程模型2. 2. 通信方式命令通信方式命令指定8251A的通信方式及數據幀格式S1S0EPPENL1L0B1B0停止位奇偶校驗字符長度波特率因子00:同步 01:1 10:16 11:64異步00:5位 01:6位 10:7位 11:8位 0

28、:無校驗 01:奇校驗 11:偶校驗00:不用 01:1位 10:1.5位 11:2位 異步:停止位0:內同步 1:外同步 0:雙同步 1:單同步 同步:同步方式MOV DX,309HMOV AL,0DAHOUT DX,AL例:例:異步通信,7位數據位, 奇校驗,2位停止位,波特率因子16 同步通信,字符長度8位,雙同步字符,內同步,奇校驗MOV DX,309HMOV AL,1CHOUT DX,AL11.6.2 8251A11.6.2 8251A的編程模型的編程模型3. 3. 工作命令工作命令控制串口內部復位、發送、接收、清除錯誤標志等EHIRRTSERSBRKRxENDTRTxEN進入搜索方

29、式內部復位1:復位發送請求錯誤標志復位1:復位發中止符接收允許DTE準備好發送允許異步通信,允許發送和接收異步通信,允許發送和接收MOV DX,309HMOV AL,05HOUT DX,AL利用利用IR=1IR=1,對芯片進行內部復位,對芯片進行內部復位MOV DX,309HMOV AL,40H;只要IR=1即可實現復位OUT DX,AL11.6.2 8251A11.6.2 8251A的編程模型的編程模型4. 4. 狀態字狀態字向CPU提供何時能發送/接收及接收是否有錯誤的信息FEFE=1,格式錯,只用于異步方式,即停止位接收錯OEOE=1,溢出錯,溢出的字符丟失PEPE=1,奇偶校驗錯由ER

30、=1的工作命令字復位DSRSYNDETFEOEPETXERXRDYTXRDYDCE就緒同步字符檢出格式錯溢出錯奇偶錯發送器空接收準備好發送準備好; ;發送一個數據發送一個數據(SI)(SI) MOV DX,309HL: IN AL,DX AND AL,01H JZ L ;TXRDY=0等待 MOV DX,308H ;TXRDY=1發送 MOV AL,SI OUT DX,AL; ;接收一個數據接收一個數據( (存入存入DI)DI) MOV DX,309HL: IN AL,DX TEST AL,38H JNZ ERR ;出錯轉出錯處理 AND AL,02H JZ L ;RXRDY=0等待 MOV

31、DX,308H ;RXRDY=1接收 IN AL,DX MOV DI,AL11.6.3 8251A11.6.3 8251A的初始化的初始化1. 1. 初始化內容初始化內容(空操作)、內部復位、方式命令、工作命令2. 2. 初始化順序初始化順序8251A的方式命令和工作命令寫入同一端口,且無特征位 區分方式區分方式:按規定的順序寫入,復位方式命令字工作命令字1(D61)工作命令字2注:注:同步方式同步方式的初始化還要設置同步字符復位操作方式命令字同步?雙同步?同步字符工作命令字D6=1?同步字符YNNYYN對C/D=1寫異步方式下命令字寫入流程異步方式下命令字寫入流程復位操作方式命令字工作命令字

32、D6=1?YN例:例:異步通信,7位數據位,奇校驗,2位停止位,波特因子16,寫入方式字的程序段MOV DX,309HMOV AL,01H;方式命令或工作命令OUT DX,ALMOV AL,40H;內部復位命令OUT DX,ALMOV AL,0DAH;方式命令OUT DX,AL11.6.4 11.6.4 基于基于8251A8251A的串行通信接口設計的串行通信接口設計RS-232C標準例例8.48.4 甲向乙發送2DH個字節,異步方式,8位數據,2位停止位,無校驗,波特率因子64,波特率4800b/s;查詢方式,零MODEM連接,8251A地址308H、309H硬件設計:硬件設計:甲、乙機方式

33、命令:0CFH甲機發送工作命令:37H; 乙機接收工作命令:14H波特率發生器甲 CPU乙 CPUEIA/TTL轉換EIA/TTL轉換8251ATxDRxDSGRxCTxC8251ATxDRxDSGRxCTxC波特率發生器8251A8251A應用的軟件編程應用的軟件編程甲機發送程序DATASEGMENTBUF_T DB 45 DUP(?)DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,309HMOV AL,01H;空操作OUT DX,ALMOV AL,40H;內部復位OUT DX,ALNOPM

34、OV AL,0CFH;方式命令OUT DX,ALMOV AL,37H;工作命令OUT DX,ALMOV SI,OFFSET BUF_TMOV CX,2DHL1:MOV DX,309HIN AL,DXAND AL,01HJZ L1 ;TXRDY=0等待MOV DX,308H;TXRDY=1發送MOV AL,SIOUT DX,ALINC SIDEC CXJNZ L1;未發完繼續MOV AX,4C00HINT 21HCODEENDSEND START8251A8251A應用的軟件編程應用的軟件編程乙機接收程序DATASEGMENTBUF_R DB 45 DUP(?)DATAENDSCODESEGME

35、NTASSUME CS:CODE,DS:DATABEGIN: MOV AX,DATAMOV DS,AXMOV DX,309HMOV AL,01H;空操作OUT DX,ALMOV AL,40H;內部復位OUT DX,ALNOPMOV AL,0CFH;方式命令OUT DX,ALMOV AL,14H;工作命令OUT DX,ALMOV DI,OFFSET BUF_RMOV CX,2DHL2:MOV DX,309HIN AL,DXTEST AL,38H;是否有錯誤JNZ ERR;轉出錯處理AND AL,02HJZ L2 ;RXRDY=0等待MOV DX,308H;RXRDY=1接收IN AL,DXMOV

36、 DI,ALINC DILOOP L2;未收完繼續JMP EXITERR:(略)EXIT:MOV AX,4C00HINT 21HCODEENDSEND BEGIN8.6.4 8.6.4 基于基于8251A8251A的串行通信接口設計的串行通信接口設計RS-485標準( (略略) )例例8.58.5 甲乙全雙工方式異步通信,零MODEM連接,雙方將各自鍵盤上的按鍵發給對方,按ESC鍵退出,7位數據位,1位停止位,無校驗,波特率因子16,8251A地址308H、309H硬件設計:硬件設計:ZCPU總線插槽OSCRXD8251ATXDTXCRXC82C54AOUT2CLK2GATE282C55APC

37、612MAX491RODEREDIVCCGNDABYBYZAREDIDEROTXDVCCGNDRXDMAX491接線盒BYZAREDIDEROTXDVCCGNDRXDMAX491三總線RS-485RS-485全雙工異步串行通信程序流程圖全雙工異步串行通信程序流程圖開始結束8251A初始化查鍵盤有鍵按下?是ESC鍵?顯示發送字符發送準備好?發送1個字符是ESC?接收1個字符接收準備好?顯示接收字符返回DOSTXRDY=1?YNYNYYYNRXRDY=1?NNRS-485RS-485全雙工異步串行通信匯編語言程序全雙工異步串行通信匯編語言程序DATASEGMENTDATA51EQU 308HCTR

38、L51EQU 309HERROR_MESS DB DATA IS BAD!,0DH,0AH,$DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATABEGIN:MOV AX,DATAMOV DS,AXMOV DX,CTRL51;8251A初始化XOR AX,AX;空操作LL:CALL CHAR_OUTMOV AL,40H;8251A內部復位OUT DX,ALMOV AL,4AH;8251A方式命令OUT DX,ALMOV AL,37H;8251A工作命令OUT DX,ALKB_TR:MOV AL,0BHINT 21H;有按鍵?CMP AL,0JE RECEIVE;沒

39、按鍵,判能否接收MOV AH,1INT 21HCMP AL,1BH;按下ESC鍵?JZ OVERRS-485RS-485全雙工異步串行通信匯編語言程序全雙工異步串行通信匯編語言程序( (續續) )ERROR:LEA DX,ERROR_MESSMOV AH,09HINT 21H;出錯提示JMP KB_TROVER:MOV AX,4C00HINT 21HCHAR_OUTPROC NEAR;輸出并延時子程序OUT DX,ALPUSH CXMOV CX,100;延時GG:LOOP GGPOP CXRETCHAR_OUTENDPCODEENDSEND BEGINMOV BL,ALTRANSMIT: MO

40、V DX,CTRL51IN AL,DXTEST AL,01H;TXRDY=1?JZ TRANSMITMOV DX,DATA51MOV AL,BLOUT DX,AL;發送1個數JMP KB_TRRECEIVE:MOV DX,CTRL51IN AL,DXTEST AL,38H;是否有錯JNZ ERRORTEST AL,02H;RXRDY=1?JZ KB_TRMOV DX,DATA51IN AL,DXMOV DL,ALMOV AH,02HINT 21H;顯示字符JMP KB_TR11.7 11.7 系統配置的串行通信接口系統配置的串行通信接口( (略略) )1655016550支持RS-232C標準

41、;可實現異步全雙工通信;更強的中斷控制能力;內置波特率時鐘發生器和16B的FIFO數據存儲器11.7.1 1655011.7.1 16550的外部引腳特性的外部引腳特性(40引腳)引腳名稱引腳名稱方方向向功能說明功能說明D0D7雙向系統與16550傳輸數據、命令和狀態的數據線A0A2輸入16550內部寄存器尋址信號,可尋址8個端口CS0 CS1 CS2輸入3個片選信號全部有效才選中16550TXRDY輸出發送器準備好,用于申請DMA方式發送數據RXRDY輸出接收器準備好,用于申請DMA方式接收數據ADS輸入地址選通,低有效可鎖存地址信號RD RD輸入讀,2個信號中只要1個有效即可進行讀操作WR

42、 WR輸入寫,2個信號中只要1個有效即可進行寫操作DDIS輸出驅動器禁止,高有效用于禁止外部驅動器對系統總線的驅動MR輸入主復位,高有效,迫使16550進入復位狀態INTR輸出中斷請求,高有效SIN輸入串行數據輸入SOUT輸出串行數據輸出XIN輸入16550工作的基準時鐘RCLK輸入接收時鐘XOUT輸出是XIN的輸出,可作為其他定時信號BAUDOUT輸出波特率輸出信號,是XIN分頻后的輸出,常與RCLK相連OUT1 OUT2輸出用于用戶自定義功能(如開放/禁止中斷)DTR DSR RTS CTS RI DCDRS-232C接口標準的同名引腳11.7.2 1655011.7.2 16550的編程

43、模型的編程模型1. 165501. 16550的內部寄存器的內部寄存器11個可訪問的寄存器2. 2. 內部寄存器的端口地址共用問題內部寄存器的端口地址共用問題波特率除數寄存器訪問位DL(LCR的D7位)讀/寫RBR與THR;IIR與FCRDL被訪問的寄存器被訪問的寄存器A2 A1 A0COM1端端口口COM2端端口口0接收緩沖寄存器RBR(讀)與發送保持寄存器THR(寫)0 0 03F8H2F8H0中斷允許寄存器IER0 0 13F9H2F9H1波特率除數寄存器低字節DLL0 0 03F8H2F8H1波特率除數寄存器高字節DLM0 0 13F9H2F9H中斷識別寄存器IIR(讀)與FIFO控制

44、寄存器FCR(寫)0 1 03FAH2FAH線路控制寄存器LCR0 1 13FBH2FBHMODEM控制寄存器MCR1 0 03FCH2FCH線路狀態寄存器LSR1 0 13FDH2FDHMODEM狀態寄存器MSR1 1 03FEH2FEH暫存Scratch1 1 13FFH2FFH11.7.2 1655011.7.2 16550的編程模型的編程模型3. 165503. 16550內部寄存器的格式內部寄存器的格式(1)(1)線路控制寄存器線路控制寄存器LCRLCR例:例:8位數據位,2位停止位,偶校驗,無附加位,無間隔發送,禁除數鎖存MOV DX,3FBHMOV AL,1FHOUT DX,AL

45、(2)(2)線路狀態寄存器線路狀態寄存器LSRLSRDLSBSTPPESL1L0允許除數鎖存1:允許發送間隔1:SOUT上發間隔附加位1:有校驗類型1:偶校驗校驗允許1:允許停止位0:1位;1:1.5或2位數據長度0011:58位ERTETHBIFEPEOEDR1:FIFO中至少一個錯誤1:發送器空1:發送器就緒1:接收間隔1:幀錯誤1:奇偶錯1:超限錯1:FIFO中有數據例:例:收發處理的程序段START:MOV DX,3FDHIN AL,DXTEST AL,1EH ;有錯?JNZ ERRTEST AL,01H ;接收?JNZ RECEIVETEST AL,20H ;發送?JNZ TRANS

46、JMP START11.7.2 1655011.7.2 16550的編程模型的編程模型3. 165503. 16550內部寄存器的格式內部寄存器的格式(3)(3)中斷允許寄存器中斷允許寄存器IERIER例如:例如:只允許接收和發送中斷01H(4)(4)中斷識別寄存器中斷識別寄存器IIRIIRID2ID1ID0PN無效中斷識別碼0:有未決中斷例如:例如:檢查是否有接收中斷MOV DX,3FAHIN AL,DXCMP AL,04HJE RECV_INT0000EMELETER不用,寫01:允許MODEM中斷1:允許接收器錯誤中斷1:允許發送器中斷1:允許接收器中斷 16550的中斷類型及優先級的中

47、斷類型及優先級ID2 ID1 ID0 PN優先級類型復位控制0 0 0 1沒有中斷0 1 1 01接收器錯誤(奇偶校驗、幀、超限)通過 讀線路寄存器復位0 1 0 02接收器準備好通過讀數據復位1 1 0 02字符超時通過讀數據復位0 0 1 03發送器準備好通過寫發送器復位0 0 0 0MODEM狀態中斷通過讀MODEM狀態復位11.7.2 1655011.7.2 16550的編程模型的編程模型3. 165503. 16550內部寄存器的格式內部寄存器的格式(5)FIFO(5)FIFO控制寄存器控制寄存器FCRFCR是否允許使用FIFO及FIFO產生中斷的深度(6)(6)波特率除數寄存器波特

48、率除數寄存器16位分頻系數,分高字節DLM和低字節DLL除數除數= = CLKCLK ( (波特率波特率 16)16)例如:例如:16550對1.8432MHz進行分頻,要求波特率為19200b/s,則除數=6MOV DX,3FBHMOV AL,80H;除數寄存器訪問位DL=1OUT DX,ALMOV DX,3F8HMOV AL,06H;寫除數低字節OUT DX,ALMOV DX,3F9HMOV AL,0;寫除數高字節OUT DX,ALRT1RT000DMAXMIT RSTRECV RSTEN接收器觸發器值00:FIFO中有1B01:4B;10:8B;11:14BDMA方式控制0:奇校驗;1:偶校驗1:復位發送器FIFO1:復位接收器FIFO1:允許FIFO11.7.2 1655011.7.2 16550的編程模型的編程模型3. 165503. 16550內部寄存器的格式內部寄存器的格式(7)(7)數

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論