网站大量收购独家精品文档,联系QQ:2885784924

RENESAS单片机软件模拟UART通信的实现.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RENESAS单片机软件模拟UART通信的实现.doc

RENESAS单片机软件模拟UART通信的实现   摘要:在某些嵌入式系统应用中,需要多个UART串口,从而会限制单片机的选型和使用。本文介绍了一种模拟UART接口的方法,可以实现半双工的UART通信,为以上应用提供一种解决方案。该方案已经在瑞萨M38239GCFP单片机上实现并成熟应用,也可以参考用于其他种类的单片机上。   Abstract: Sometimes more UART ports are needed in some embedded systems which limited the choice of MCU. This paper introduces one method of simulation UART,realizes half-duplex UART communication that provided a method. This method is realized in RENESAS MCU M38239GCFP.It can also be applied to other MCU.   关键词:UART;软件模拟接口;RENESAS   Key words: UART;software simulation ports;RENESAS   中图分类号:TP273文献标识码:A文章编号:1006-4311(2010)15-0156-02      0引言   异步串行通讯(UART)是单片机之间通讯最常用的方式,可以很方便的转化为RS232格式与计算机通讯,转化为RS485实现远距离通讯。很多复杂系统中需要使用不同的单片机组合设计,不同单片机之间的通讯也经常采用异步串行口通讯。这样有时导致单片机的UART通讯端口不够用,需要使用普通的IO口通过软件模拟的方式实现UART通讯的功能。UART通讯的原理并不复杂,本文给出一种普通IO口模拟UART的方法,已经在瑞萨单片机M38239GCFP上实现并成熟应用。   1M38239GCFP单片机资源、特点介绍   此单片机是采用了740族内核的8位单片机,具有LCD驱动控制电路、A/D转换器、1路串行接口、监视定时器以及ROM校正功能等附加功能。   2本系统中M38239GCFP与模拟UART相关的资源配置   系统中需要两路串口,其中一路需要进行实时通讯,因此无法采用分时通讯的方式。需要一路采用软件模拟的方法。   本系统中使用4M外部陶瓷振荡器,2分频作为总线时钟。8位定时器Timer1、Timer3结合作为系统2ms基准定时,用来计算系统中的各种计时。8位定时器Timer2工作在脉冲输出模式,通过P56端口输出方波,用作蜂鸣器驱动。16位定时器TimerX配合外部中断INT0实现红外遥控解码功能;16位定时器TimerY配合外部中断INT3实现模拟UART的接收功能;再加另外一个IO口实现模拟UART的发送功能。   3UART串口介绍   UART串口为异步通信接口,1帧信息为10位或11位,图1所示的是一个帧格式示意图;10位的帧包括1位起始位(0-低电平),8位数据位和1位停止位(1-高电平)。通信双方必须采用同样的波特率,相同的帧格式(起始位、停止位、校验方式),发送端以该波特率依图1的格式发送数据,接收端则以16倍波特率采样RXD管脚的信号。如果一个有效的起始位被发现,则开始数据位的采样,每一位的数值会在8、9、10个采样点被采样三次,其中至少两次相同的值才被确认,并被移入传送移位寄存器中,最后一位必须是1(停止位),否则说明通信有错。   St起始位,总是为低电平,表示开始传输字符。   (n)数据位(0~8):起始位之后需要发送的数据信息。   P校验位,可以选择为奇校验或偶校验,数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。   Sp停止位,总是为高电平,表示一个字节的数据发送完成。   IDLE 通讯线上没有数据传输(RXD或TXD),线路空闲时必须为高电平。   4 软件模拟UART的设计   4.1 读取1个bit的做法,目前主要的做法   ①每个bit中点连续读取3次,高电平次数多认为是高电平,低电平次数多认为是低电平;   ②每个bit中点连续读取3次,要求3次电平状态都相同,否则报出错;   ③每个bit平均分成16份(中间15次),只在第8、9、10次读取接收管脚电平状态,确认是0或者1。   理论上③种做法最好,但需要设定不同的定时器初始值,进入中断的时间是不同的,进入中断后有可能处理不完数据,下一次中断又来了,因此在这里不选用这种做法。②做法比较严格,丢数据包几率增加,但不会误接收数据;①做法

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档