RENESAS单片机软件模拟UART通信的实现
RENESAS单片机软件模拟UART通信的实
现
?156?价值工程
RENESAS单片机软件模拟UART通信的实现
RealizationofSoftwareSimulationUARTBasedonRENESASMCU 陶梦春TaoMengchun;陈凤武ChenFengwu
(格力电器股份有限公司,珠海519070)
(GreeElectricAppliances,Inc.ofZhuhai,Zhuhai519070,China)
摘要:在某些嵌入式系统应用中,需要多个UART串口,从而会限制单片机的选型
和使用.本文介绍了一种模拟UART接口的方法,可以实
现半双工的UART通信,为以上应用提供一种解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
.该方案已经在瑞萨
M38239GCFP单片机上实现并成熟应用,也可以参考用于其他种类
的单片机上.
Abstract:SometimesmoreUARTportsareneededinsomeembeddedsystemswhichlimitedt
hechoiceofMCU.ThisPaDerintroducesonemethod ofsimulationUART,realizeshaIf-duplexUARTcommunicationthatprovidedamethod.Thi
smethodisrealizedinRENESASMCUM38239GCFP.Itvan alsobeappliedtootherMCU.
关键词:UART;软件模拟接口;RENESAS
Keywords:UART:softwaresimulationports;RENESAS 中图分类号:TP273文献标识码:A文章编号:1006—4311(2010)15—0156—02
O引言
异步串行通讯(UART)是单片机之间通讯最常用的方式,可以
很方便的转化为RS232格式与计算机通讯,转化为RS485实现远
距离通讯.很多复杂系统中需要使用不同的单片机组合
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
,不同
单片机之间的通讯也经常采用异步串行口通讯.这样有时导致单片
机的UART通讯端口不够用,需要使用普通的10口通过软件模拟
的方式实现UART通讯的功能.UART通讯的原理并不复杂,本文 给出一种普通IO口模拟UART的方法,已经在瑞萨单片机 M38239GCFP上实现并成熟应用.
1M38239GCFP单片机资源,特点介绍
此单片机是采用了740族内核的8位单片机,具有LCD驱动 控制电路,A/D转换器,1路串行接口,监视定时器以及ROM校正 功能等附加功能.
2本系统中M38239GCFP与模拟UART相关的资源配置 系统中需要两路串口,其中一路需要进行实时通讯,因此无法 采用分时通讯的方式.需要一路采用软件模拟的方法. 本系统中使用4M外部陶瓷振荡器,2分频作为总线时钟.8位 定时器Timerl,Timer3结合作为系统2ms基准定时,用来计算系统 中的各种计时.8位定时器Timer2工作在脉;中输出模式,通过P56 端口输出方波,用作蜂鸣器驱动.16位定时器TimerX配合外部中 断INT0实现红外遥控解码功能;16位定时器TimerY配合外部中 断INT3实现模拟UART的接收功能再加另外一个IO口实现模拟 UART的发送功能.
3UART串口介绍
UART串口为异步通信接口,1帧信息为10位或11位,图1所 示的是一个帧格式示意图;1O位的帧包括1位起始位(0一低电平), 8位数据位和l位停止位(1一高电平).通信双方必须采用同样的波 特率,相同的帧格式(起始位,停止位,校验方式),发送端以该波特 率依图1的格式发送数据,接收端则以16倍波特率采样RXD管脚 的信号.如果一个有效的起始位被发现,则开始数据位的采样,每一 位的数值会在8,9,10个采样点被采样三次,其中至少两次相同的 值才被确认,并被移入传送移位寄存器中,最后一位必须是l(停止 ?)LESf0134PSPSt
图1帧格式示意图
位),否则说明通信有错.
st起始位,总是为低电平,
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示开始传输字符.
(n)数据位(0,8):起始位之后需要发送的数据信息. P校验位,可以选择为奇校验或偶校验,数据位加上这一位后, 使得"1"的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数 据传送的正确性.-
Sp停止位,总是为高电平,表示一个字节的数据发送完成. IDLE通讯线上没有数据传输(RXD或TXD),线路空闲时必须 为高电平.
4软件模拟UART的设计
4.1读取1个bit的做法,目前主要的做法
图2数据位采样示意图
?每个bit中点连续读取3次,高电平次数多认为是高电平,低 电平次数多认为是低电平;
?每个bit中点连续读取3次,要求3次电平状态都相同,否则 报出错:
?每个bit平均分成16份(中间l5次),只在第8.9,10次读取 接收管脚电平状态,确认是0或者1.
理论上?种做法最好,但需要设定不同的定时器初始值,进入 中断的时间是不同的,进入中断后有可能处理不完数据,下一次中 案:如图3在中宁县中心机房布放一条双头尾纤连接中兴OLT设 备ZSAC220至ODF架,光缆连接OLT和小区光分路器的光通道, 光分路器出线分别用跳纤连接4个ONU设备ZXDSL9806H.小区 安装4套室外落地式机柜,每个机柜安装一端中兴ZXDSL9806H设 备,用电缆连接小区内用户至指定机柜,就可以解决小区内住户的 语音和宽带上网.
5结束语
在接入网技术的宽带化,IP化的今天,EPON技术能满足用户 日渐增长的带宽需求.EPON技术能够以相对低廉的成本提供高 速,可靠,多业务宽带接入技术,能实现灵活带宽接入;不需要任何
格式转换,这将大大提高运行效率,方便管理,长距离覆盖,20km超 长距离传输;综合低成本方案,单芯组网,无源分光,节省光纤资源; 节省机房,不需要专用机房设施;低维护成本,采用无源器件;成熟 的IP接入网公用平台;实现综合业务接入,提供Intemet,VoIP, IPTV,VPN等综合业务承载.
参考文献:
[1】李学易,韩一石,韩国军,等.基于EPON的综合接入组网设计[J].光通 信技术,2007,9:14—17.
ValueEngineering?157?
断又来了,因此在这里不选用这种做法.?做法比较严格,丢数据包 几率增加,但不会误接收数据;?做法与?做法相反,不容易丢数据 包,但误接收数据的几率增加.
4-2本系统需要模拟的UART通讯数据格式说明
波特率600bps,1位起始位,8位数据位,偶校验,1位停止位. 使用的芯片资源说明:timerY和INT3,两个普通I/O口:需要注意的 是timerY的中断优先级别比INT3的中断优先级别高. 定时
/
器开始计数
AB
图3数据位发送示意图
4.2.1定时器Y:16位定时器使用说明.
地址tmryh,tmryli
?计数源为f(Xin)/16—4us,f(Xin)=4MHz: ?设定初始值值为103,计数时间是(103+1)x4us=416us ?计数起停控制标志位为tycnt—disO:start1:stop; ?中断允许位tyint—en0:enable1:disable; 图4发送一个字节流程图
4.2.2外部输入中断INT3使用说明
?用来
检测
工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训
起始位,检测每一个byte的起始位;
@int3一edge是中断触发沿选择位,0:falling1:rising
(~)int3_req是中断请求位;
@int3_en是中断使能位,0:disable1:enable; 4.3接收,发送两个管脚
Pin—
Mrxd/Pin—
Mtxd,其中接收管脚为外部输入中断方式:
4.3.1发送做法说明:
一
旦进入发送状态,调用发送子程序,把要发送的数据增加上 起始位,校验位和停止位.发送和接收使用同一个定时器,所以程序 在发送和接收之间切换,实现一种半双工方式的通讯.A,B,C进入 定时中断的判断点.
在程序主循环中每1秒调用一次发送子程序,准备好要发送的 数据后,发送管脚置低电平(平时为高电平),开启定时(TimerY)中 断,每四次进入中断(一个bit的时间)根据要发送的数据更改发送 管脚电平状态;依次发送起始位,数据位,校验位,停止位.发送完一 个字节,判定是否发送完一帧数据,否则发送下一个字节. '
/^\.
是
接收脚电革\一
为低?/
否
皂平
数累加t国
为高电/一叶l错位置L
止定时器Y计数.
止定时器Y中断,
电平次数清零,低
平次数清零,接收
计数初始化归1;
图5接收一个字节流程图
束退出定时中
4.3.2接收做法说明:
要正确接收数据,首先要检测起始位.由于接收管脚使用的 INT3脚,一旦在INT3上出现下降沿,产生中断.响应中断后,定时 器设置定时周期为1/2个bit的时间,以便保证在起始位中间位置 定时中断采样INT3引脚.如果采样电平为高电平,可以认为是干扰 信号,定时器立即停止定时并退出子程序.如果为低,则认为检测到 起始位,关闭外部中断,避免后面数据位中的0信息被误认为是起 始位.确认起始位后,定时器设置为1个bit定时周期,保证数据位 在中间采样,减少误判断.接收完数据位后,以相同的方式接收校验 位,并判定校验位是否正确.如果接收数据正确,接收位计数相关的 变量清零,同时打开外部中断捕捉下一个byte的起始位. 每个bit判定三次,由于设置的波特率是600bps,所以每 1.667ms/4=416us进入定时中断判断一次输入管脚的电平状态.每 个byte都用外部中断检测下降沿的方式捕捉其起始位.检测到起始 位后,打开定时中断.接收完每个byte的第10个bit(校验位)时打 开外部中断,设置为下降沿触发;接收完每个byte的第11个bit 时,停止tymerY计数,禁止tymerY中断.
5总结
使用以上方法做的模拟UART端口,可以实现与单片机硬件 UART异步数据完全相同的帧格式,配合单片机内置的异步串口测 试,可以满足使用要求.可以有效的解决单片机异步串行口的扩展 问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
.
参考文献:
【1】陆延丰,常清璞.三菱3850系列单片机原理和应用fM].北京北京航 空航天大学出版社,2000.
[21耿德根,宋建国,马潮,等.AVR高速嵌入式单片机原理与应用[M].北 京:北京航空航天大学出版社,2001.