发明名称 一种通过软件模拟实现多个UART通信接口的方法
摘要 本发明涉及一种嵌入式系统中通过软件模拟实现UART通信接口数据的发送和接收的处理方法。本发明的通过软件模拟实现多个UART通信接口的方法,包括数据接收方法和数据发送方法,利用定时器的定时中断功能实现精确的波特率定时,发送和接收都在定时中断的控制之下进行。本发明中模拟一个UART通信接口仅需要1个定时器,2个I/O端口,1个软件中断。模拟多个UART通信接口可以共用一个定时器和一个软件中断,因此,每增加扩展一个UART通信接口,仅需要增加2个I/O端口。本发明应用于软件模拟实现UART通信接口。
申请公布号 CN102546843A 申请公布日期 2012.07.04
申请号 CN201210013739.7 申请日期 2012.01.17
申请人 厦门雅迅网络股份有限公司 发明人 叶德焰;赖荣东;陈挺;李基勇;陈余菲
分类号 H04L29/10(2006.01)I;G06F13/24(2006.01)I 主分类号 H04L29/10(2006.01)I
代理机构 厦门市诚得知识产权代理事务所 35209 代理人 方惠春
主权项 一种通过软件模拟实现多个UART通信接口的方法,其特征在于:包括数据接收方法和数据发送方法,其中数据接收方法包括以下步骤:配置芯片一I/O管脚为接收管脚RXD的步骤:将接收管脚RXD配置为低电平中断模式并打开I/O中断使能;实时监测接收管脚RXD接收数据的步骤:当接收到数据时,首先检测该数据的起始位,如果起始位为高电平则继续实时监测,如果起始位为低电平,则触发接收管脚RXD发生I/O低电平中断;I/O低电平中断处理步骤:配置接收管脚RXD为通用I/O输入模式并关闭I/O中断使能,启动定时器,启动字节数据接收,其中所述定时器的定时时间间隔设置为多个UART通信接口中最高波特率的位时长的1/n,即定时器中断频率为多个UART通信接口中最高波特率的n倍,定时器的定时时间到时触发定时器中断,其中n≥2; 定时器中断处理步骤:根据定时器定时中断接收数据,每次中断根据计算延时计数器到期接收一个位,经过若干个定时中断完成1个字节数据的接收,并判断接收到的字节的有效性,如果接收到的字节无效则返回“配置芯片一I/O管脚为接收管脚RXD的步骤”,如果接收到的字节有效则触发软件中断,返回“配置芯片一I/O管脚为接收管脚RXD的步骤”,退出定时器中断后进入软件中断,在软件中断中存储接收的字节数据;软件中断处理步骤:将接收到的有效字节数据存储到接收FIFO缓存队列中;数据发送方法包括以下步骤:配置芯片另一I/O管脚为发送管脚TXD的步骤:将发送管脚TXD配置为通用I/O输出模式;准备发送数据的步骤:将待发送的数据存储到发送FIFO缓存队列中,触发软件中断;软件中断处理步骤:获取发送FIFO缓存队列中字节数据,启动字节数据发送,并按照定时器的定时时间来触发定时器中断;定时器中断处理步骤:根据定时器定时中断发送数据,每次中断根据计算延时计数器到期发送一个位,经过若干个定时中断完成1个字节数据的发送;如果字节数据发送完毕,触发软件中断,进入软件中断处理步骤。
地址 361000 福建省厦门市软件园二期观日路46号