MB89P475的UART/SIO結(jié)構(gòu)與應(yīng)用分析
本文引用地址:http://cafeforensic.com/article/171338.htm
RXE:數(shù)據(jù)接收允許位,置0時(shí)禁止接收,置1時(shí)允許接收;
TXE:數(shù)據(jù)發(fā)射允許位,置0時(shí)禁止發(fā)射,置1時(shí)允許發(fā)射;
BRGE:波特率發(fā)生器啟動(dòng)位,0為停止,1為啟動(dòng);
TXOE:串行數(shù)據(jù)輸出允許位,置0時(shí),P21/SO1、P26/SO2為通用I/O口,置1時(shí),P21/SO1、P26/SO2為串行數(shù)據(jù)輸出口;
SCKE:串行時(shí)鐘輸出允許位,置0時(shí),P20/SCK1、P27/SCK2為通用I/O口或串行時(shí)鐘輸入口,置1時(shí),P20/SCK1、P27/SCK2為串行時(shí)鐘輸出口;
RIE:接收中斷允許位,置0時(shí),接收中斷禁止,置1時(shí),接收中斷允許;
TIE:發(fā)射中斷允許位,置0時(shí),發(fā)射中斷禁止,置1時(shí),發(fā)射中斷允許。
(3) SSD1/2:狀態(tài)與數(shù)據(jù)寄存器(地址:0028H/002DH,初始化值:00001---H),格式如下:
Bit7 | Bit6 | Bit5 | BIT4 | Bit3 | Bit2 | Bit1 | Bit0 |
PRE | OVE | FER | RDRF | TDRE | -- | -- | -- |
其中,PRE:為校驗(yàn)錯(cuò)誤標(biāo)志,0為無(wú)校驗(yàn)錯(cuò)誤,1為校驗(yàn)錯(cuò)誤;
OVE:溢出錯(cuò)誤標(biāo)志,0為無(wú)溢出錯(cuò)誤,1為溢出錯(cuò)誤;
FER:幀錯(cuò)誤標(biāo)志,0為無(wú)幀錯(cuò)誤,1為幀錯(cuò)誤;
RDRF:接收數(shù)據(jù)寄存器滿標(biāo)志,0為寄存器空,1為接收數(shù)據(jù)滿;
TDRE:發(fā)射數(shù)據(jù)寄存器空標(biāo)志,0為發(fā)射數(shù)據(jù)滿,1為寄存器空。
這里,SSD1/2是只讀寄存器。若接收中斷允許(RIE=1),那么任何錯(cuò)誤標(biāo)志置“1”都將產(chǎn)生接收中斷。因此,在程序中將RERC(SMC12/22中的Bit7)置“1”,可將各錯(cuò)誤標(biāo)志清零。
(4)SRC1/2:波特率控制寄存器(地址:002AH/002FH,初始化值:xxxxxxxxH)
當(dāng)SMC11/SMC21寄存器中的CLK2 ~ CLK0設(shè)為“011”時(shí),由于選擇的是波特率發(fā)生器作為串行時(shí)鐘(異步通信方式使用),因此,只有在UART/SIO停止工作時(shí),寫入SRC1/2的數(shù)據(jù)才有效。此時(shí),波特率計(jì)算方法如下(CLK2~CLK0設(shè)為“011”):
波特率=1/(16nTint)
式中,n為寫入SRC1/2的數(shù)值,Tint為指令周期,其值可通過(guò)對(duì)相關(guān)寄存器編程設(shè)定為4/fch、8/fch、16/fch、64/fch(其中fch為系統(tǒng)時(shí)鐘振蕩器頻率)。
(5) SIDR1/2: 輸入數(shù)據(jù)寄存器(地址:0029H/002EH,初始化值:xxxxxxxxH)
該寄存器用于存放接收到的數(shù)據(jù)。當(dāng)數(shù)據(jù)接收完成時(shí),RSRF位(SSD1/2中的Bit4)被置“1”,此時(shí)若接收中斷允許,將產(chǎn)生接收中斷請(qǐng)求。讀出接收數(shù)據(jù)后,RSRF位自動(dòng)清“0”。
系統(tǒng)檢測(cè)到接收中斷請(qǐng)求后,應(yīng)檢查RSRF位是否為“1”,若為“0”,說(shuō)明該中斷是由于接收錯(cuò)誤產(chǎn)生的,SIDR1/2并未接收到數(shù)據(jù),此時(shí)應(yīng)在相應(yīng)的程序中作相應(yīng)處理。
(6) SODR1/2:輸出數(shù)據(jù)寄存器(地址:0029H/002EH,初始化值:xxxxxxxxH)
SODR1/2與SIDR1/2具有相同的地址。發(fā)射允許時(shí),將發(fā)射數(shù)據(jù)寫入該寄存器即可直接轉(zhuǎn)送到發(fā)射寄存器,并通過(guò)發(fā)射移位寄存器發(fā)送到串行數(shù)據(jù)輸出口(SO1/2)。
若將發(fā)射數(shù)據(jù)長(zhǎng)度設(shè)為7 Bits,則數(shù)據(jù)的第7位(最高位)無(wú)效。
3?。蹋樱遥常埃靶图叵到y(tǒng)的構(gòu)成
圖2所示為LSR300型中央空調(diào)計(jì)算機(jī)集控系統(tǒng)的結(jié)構(gòu)框圖,該系統(tǒng)采用RS-485總線結(jié)構(gòu)方式,由計(jì)算機(jī)控制管理平臺(tái)、RS-232/RS-485轉(zhuǎn)換模塊、14個(gè)控制終端(包括通信板和主控系統(tǒng),其控制終端數(shù)量可以根據(jù)實(shí)際要求增加或減少)組成。其中計(jì)算機(jī)控制管理平臺(tái)主要用于數(shù)據(jù)通信、系統(tǒng)檢測(cè)、功能設(shè)定和控制以及查詢等管理工作。
系統(tǒng)中的RS-232/RS-485轉(zhuǎn)換模塊由MAX-IM公司生產(chǎn)的MAX491E、MAX232A組成,該模塊的電路連接如圖3所示。
通信板由MB89P475為核心組成,其結(jié)構(gòu)如圖4所示。圖中的RS-485接口由MAX491E完成,接收器處于常通狀態(tài)(RE接地),發(fā)射器的選通(DE端)由MB89P475的P2.7口控制(高電平選通)。通信板主要完成以下功能:
(1) 用撥碼開(kāi)關(guān)實(shí)現(xiàn)各控制終端的地址編碼;
(2) 機(jī)組的本地操作控制與顯示(包括本地查詢、設(shè)置和控制);
(3) 分別與計(jì)算機(jī)和主控系統(tǒng)通信,實(shí)現(xiàn)主控系統(tǒng)與計(jì)算機(jī)之間的數(shù)據(jù)傳送。其中,與計(jì)算機(jī)之間采用RS-485總線方式進(jìn)行連接,而與主控系統(tǒng)之間則采用電流環(huán)方式連接;
(4) 記憶機(jī)組的設(shè)定信息、故障信息和累計(jì)運(yùn)行時(shí)間。
蜂鳴器相關(guān)文章:蜂鳴器原理
評(píng)論