微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鎾儉婢舵劕绾ч幖瀛樻尭娴滅偓淇婇妶鍕妽闁告瑥绻橀弻锝夊箣閿濆棭妫勭紒鐐劤濞硷繝寮婚悢鍛婄秶闁告挆鍛缂傚倷鑳舵刊顓㈠垂閸洖钃熼柕濞炬櫆閸嬪棝鏌涚仦鍓р槈妞ゅ骏鎷�04闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫆闁芥ê顦純鏇㈡⒒娴h櫣甯涢柛鏃€娲熼獮鏍敃閵堝洣绗夊銈嗙墱閸嬬偤鎮¢妷鈺傜厽闁哄洨鍋涢埀顒€婀遍埀顒佺啲閹凤拷03闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫇闁逞屽墰缁絽螖娴h櫣顔曢梺鐟扮摠閻熴儵鎮橀埡鍐<闁绘瑢鍋撻柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏犖ч柛灞剧煯婢规洖鈹戦缁撶細闁告鍐f瀺鐎广儱娲犻崑鎾舵喆閸曨剛锛涢梺鍛婎殕婵炲﹪鎮伴鈧畷鍫曨敆婢跺娅屽┑鐘垫暩婵挳骞婃径鎰;闁规崘顕ч柨銈嗕繆閵堝嫯鍏岄柛娆忔濮婅櫣绱掑Ο鑽ゎ槬闂佺ǹ锕ゅ﹢閬嶅焵椤掍胶鍟查柟鍑ゆ嫹闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴鐐测偓鍝ョ不閺嶎厽鐓曟い鎰剁稻缁€鈧紒鐐劤閻忔繈鍩為幋锔藉亹閻庡湱濮撮ˉ婵堢磽娴e搫顎岄柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷
首页 > 硬件设计 > 嵌入式设计 > MB89P475的UART/SIO结构与应用分析

MB89P475的UART/SIO结构与应用分析

时间:06-06 来源:互联网 点击:

/21:模式控制寄存器1(地址:0026H/002BH,初始化值:00000000H)的格式如下:

其中,MD为通信模式控制位,该位为0为异步通信(UART),为1时同步通信(SIO);

PEN为校验控制位,该位为0表示无校验,为1表示有校验(由Bit5选择奇、偶校验);

TDP为奇、偶校验位,0为偶校验,1为奇校验;

SBL是停止位长度控制位,0 为选择1Bit停止位,1为选择2 Bit停止位;

CL为字符长度控制位,0 为选择7 Bit数据长度,1为选择8 Bit数据长度;

CLK2~CLK0:通信时钟选择位,具体操作见表2所列。

表2 时钟选择

CLK2CLK1CLK0

选 择 时 钟

0002个指令周期
0018个指令周期
01032个指令周期
011波特率发生器控制
100外部时钟

(2)SMC12/22:模式控制寄存器2(地址:0027H/002CH,初始化值:00000000H)的格式如下:

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
RERCRXETXEBRGETXOESCKERIETIE

其中,RERC:各接收标志清除位。置0时,清除所有错误标志,置1无效;

RXE:数据接收允许位,置0时禁止接收,置1时允许接收;

TXE:数据发射允许位,置0时禁止发射,置1时允许发射;

BRGE:波特率发生器启动位,0为停止,1为启动;

TXOE:串行数据输出允许位,置0时,P21/SO1、P26/SO2为通用I/O口,置1时,P21/SO1、P26/SO2为串行数据输出口;

SCKE:串行时钟输出允许位,置0时,P20/SCK1、P27/SCK2为通用I/O口或串行时钟输入口,置1时,P20/SCK1、P27/SCK2为串行时钟输出口;

RIE:接收中断允许位,置0时,接收中断禁止,置1时,接收中断允许;

TIE:发射中断允许位,置0时,发射中断禁止,置1时,发射中断允许。

(3) SSD1/2:状态与数据寄存器(地址:0028H/002DH,初始化值:00001---H),格式如下:

Bit7Bit6Bit5BIT4Bit3Bit2Bit1Bit0
PREOVEFERRDRFTDRE------

其中,PRE:为校验错误标志,0为无校验错误,1为校验错误;

OVE:溢出错误标志,0为无溢出错误,1为溢出错误;

FER:帧错误标志,0为无帧错误,1为帧错误;

RDRF:接收数据寄存器满标志,0为寄存器空,1为接收数据满;

TDRE:发射数据寄存器空标志,0为发射数据满,1为寄存器空。闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿垂妤e啫绠涘ù锝呮贡缁嬩胶绱撻崒姘偓鐑芥倿閿曚焦鎳岄梻浣告啞閻熴儳鎹㈠鈧濠氭偄绾拌鲸鏅梺鎸庣箓濞诧絽效濡ゅ懏鍋℃繝濠傛噹椤eジ鎮介娑樻诞闁诡喗鐟︾换婵嬪炊閵娧冨妇濠电姷鏁搁崐顖炲焵椤掑嫬纾婚柟鍓х帛閻撴盯鎮楅敐搴′簽濠⒀冪仛閹便劍绻濋崨顕呬哗闂佸湱鎳撶€氱増淇婇幖浣肝ㄩ柨鏃€鍎崇紞鎺楁⒒閸屾瑨鍏岄柟铏崌瀹曠敻寮介鐐殿唵闂佽法鍣﹂幏锟�...

这里,SSD1/2是只读寄存器。若接收中断允许(RIE=1),那么任何错误标志置“1”都将产生接收中断。因此,在程序中将RERC(SMC12/22中的Bit7)置“1”,可将各错误标志清零。

(4)SRC1/2:波特率控制寄存器(地址:002AH/002FH,初始化值:xxxxxxxxH)

当SMC11/SMC21寄存器中的CLK2 ~ CLK0设为“011”时,由于选择的是波特率发生器作为串行时钟(异步通信方式使用),因此,只有在UART/SIO停止工作时,写入SRC1/2的数据才有效。此时,波特率计算方法如下(CLK2~CLK0设为“011”):

波特率=1/(16nTint)

式中,n为写入SRC1/2的数值,Tint为指令周期,其值可通过对相关寄存器编程设定为4/fch、8/fch、16/fch、64/fch(其中fch为系统时钟振荡器频率)。

(5) SIDR1/2: 输入数据寄存器(地址:0029H/002EH,初始化值:xxxxxxxxH)

该寄存器用于存放接收到的数据。当数据接收完成时,RSRF位(SSD1/2中的Bit4)被置“1”,此时若接收中断允许,将产生接收中断请求。读出接收数据后,RSRF位自动清“0”。

系统检测到接收中断请求后,应检查RSRF位是否为“1”,若为“0”,说明该中断是由于接收错误产生的,SIDR1/2并未接收到数据,此时应在相应的程序中作相应处理。

(6) SODR1/2:输出数据寄存器(地址:0029H/002EH,初始化值:xxxxxxxxH)

SODR1/2与SIDR1/2具有相同的地址。发射允许时,将发射数据写入该寄存器即可直接转送到发射寄存器,并通过发射移位寄存器发送到串行数据输出口(SO1/2)。

若将发射数据长度设为7 Bits,则数据的第7位(最高位)无效。

3 LSR300型集控系统的构成

图2所示为LSR300型中央空调计算机集控系统

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top