基于stm32f103ve芯片模拟多组uart接口的方法

文档序号:6365928阅读:417来源:国知局
专利名称:基于stm32f103ve芯片模拟多组uart接口的方法
技术领域
本发明涉及数据接收和发送,特别是涉及基于STM32F103VE芯片模拟多组UART接口的方法。
背景技术STM32F103VE芯片以及同类型的芯片,一般只有二至三组UART (UniversalAsynchronous Receiver/Transmitter,通用异步接收/发送装置)接口,超过五组UART接口的基本没有。但是有些应用场合的设备,需要更多组UART接口以连接不同的硬件设备,例如预付费监控水表系统采集器,在设计时需要九个UART接口同时进行并独立工作,最多五个UART接口显然不然满足需要。如果使用UART扩展芯片则价格高且电路复杂;如使用通信专用多UART接口 MCU的话,其MCU成本极高,并且其软件与硬件开发成本也随这升高,开发过程中又要学习新的开发环境并要做大量的文档阅读,开发过和可控性差。
发明内容本发明要解决的技术问题在于避免上述现有技术的不足之处而提出一种基于STM32F103VE芯片模拟多组UART接口的方法;该方法在现有硬件的基础上,能够实现更多组同时工作且相互独立的UART接口,以满足设备通信连接的需要,且无须增加或采用更加昂贵的硬件,节约硬件成本。
本发明解决所述技术问题可以通过采用以下技术方案来实现
提出一种基于STM32F103VE芯片模拟多组UART接口的方法,包括如下步骤,
A.选定芯片的至少两组GPIO口作为模拟UART接口 ;
B.当各组模拟UART接口中任一组有发送请求时,令芯片的第一定时器启动,第一定时器每隔一段时间中断一次,以使模拟UART接口完成发送任务,发送时中断仅仅只是模拟物理层将多组模拟UART接口的TX数据位送出,并通知数据链路层对要发送的数据位进行组织;
C.各组模拟UART接口的RX引脚中任一出现中断请求则触发接收请求,同时令芯片的第二定时器启动,第二定时器每隔一段时间中断一次,中断时只采样各模拟UART接口接收端口状态并保存到缓冲区,当接收到停止位时将数据发送到模拟物理层行数字滤波以得到接收字节,之后再把接收到的字节数据传递给数据链路层,最终通过网络层传递给应用层。本发明方法最多能模拟八组UART接口。同现有技术相比较,本发明基于STM32F103VE芯片模拟多组UART接口的方法的技术效果在于1·充分利用STM32F103VE芯片的八组GPIO 口(General Purpose InputOutput,通用输入/输出)和两个定时器的现有资源,模拟出2-8组UART接口,满足了设备需要更多UART接口的需要,且无须增加或采用更为昂贵的芯片等硬件,节约硬件成本;2.模拟的多组UART接口与其他MCU内部硬件UART只是在物理层表现不同,其他各层完全相同,极大方便了程序的移植与硬件升级。


图I是模拟UART接口的发送流程示意 图2是模拟UART接口的接收流程示意图。
具体实施方式
以下结合附图所示之优选实施例作进一步详述。本发明实施例基于STM32F103VE芯片模拟多组UART接口的方法,包括如下步骤,
A.选定芯片的至少两组GPIO口作为模拟UART接口 ;
B.如图I所示,当各组模拟UART接口中任一组有发送请求时,令芯片的第一定时器启动,第一定时器每隔一段时间中断一次,以使模拟UART接口完成不小于9600bps的发送任 务,发送时中断仅仅只是模拟物理层将多组模拟UART接口的TX数据位送出,并通知数据链路层对要发送的数据位进行组织;
C.如图2所示,各组模拟UART接口的RX引脚中任一出现中断请求则触发接收请求,同时令芯片的第二定时器启动,第二定时器每隔一段时间中断一次,中断时只采样各模拟UART接口接收端口状态并保存到缓冲区,当接收到停止位时将数据发送到模拟物理层行数字滤波以得到接收字节,之后再把接收到的字节数据传递给数据链路层,最终通过网络层传递给应用层。由于STM32F103VE芯片有八组GPIO 口可以利用,因此本发明方法最多能模拟八组UART 接口。根据设备连接的需要,模拟的UART接口可以在2-8组中任意选择设定,设计的共同点在于定时中断只是进行GPIO的输入输出,运行耗时极短,数据位的收发处理均放在模拟UART接口物理层的任务中,每增加一个接口则加多一个物理层任务的实例。不同在于,根据需要模拟UART接口组数的多少,相应设计第一定时器和第二定时器的中断间隔时间的长短,以保证设备系统的稳定运行。下面以适用于适用于预付费监控水表采集器,需模拟四组UART接口为例,结合图I和图2,说明下模拟UART接口的发送和接收的原理过程,其它组数此处就不再赘述。数据发送如图I所示,当四组模拟UART接口中任一组有发送请求时,令芯片的第一定时器启动,第一定时器每隔104. 17us中断一次,以使模拟UART接口完成不小于9600bps的发送任务,发送时中断仅仅只是模拟物理层将多组模拟UART接口的TX数据位送出,并通知数据链路层对要发送的数据位进行组织;中断程序极短。数据接收如图2所示,四组模拟UART接口的RX引脚中任一出现中断请求则触发接收请求,同时令芯片的第二定时器启动,第二定时器每隔17. 36us中断一次,中断时只采样各模拟UART接口接收端口状态并保存到缓冲区,当接收到停止位时将数据发送到模拟物理层行数字滤波以得到接收字节,之后再把接收到的字节数据传递给数据链路层,最终通过网络层传递给应用层。定时中断只是进行了 GPIO的采样,其执行时间极短,不会给系统造成影响。由于多次采样确定一个数据位,其数据通信的可靠性得到保障。以上内容是结合具体的优选技术方案对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种基于STM32F103VE芯片模拟多组UART接口的方法,其特征在于包括如下步骤, A.选定芯片的至少两组GPIO口作为模拟UART接口 ; B.当各组模拟UART接口中任一组有发送请求时,令芯片的第一定时器启动,第一定时器每隔一段时间中断一次,以使模拟UART接口完成发送任务,发送时中断仅仅只是模拟物理层将多组模拟UART接口的TX数据位送出,并通知数据链路层对要发送的数据位进行组织; C.各组模拟UART接口的RX引脚中任一出现中断请求则触发接收请求,同时令芯片的第二定时器启动,第二定时器每隔一段时间中断一次,中断时只采样各模拟UART接口接收端口状态并保存到缓冲区,当接收到停止位时将数据发送到模拟物理层行数字滤波以得到接收字节,之后再把接收到的字节数据传递给数据链路层,最终通过网络层传递给应用层。
2.如权利要求I所述的基于STM32F103VE芯片模拟多组UART接口的方法,其特征在于最多能模拟八组UART接口。
3.如权利要求I所述的基于STM32F103VE芯片模拟多组UART接口的方法,其特征在于各所述模拟UART接口的通信速率不小于9600bps。
4.如权利要求I所述的基于STM32F103VE芯片模拟多组UART接口的方法,其特征在于该方法适用于预付费监控水表采集器。
全文摘要
本发明涉及一种基于STM32F103VE芯片模拟多组UART接口的方法,包括如下步骤,A.选定芯片的至少两组GPIO口作为模拟UART接口;B.当各组模拟UART接口中任一组有发送请求时,令芯片的第一定时器启动,第一定时器每隔一段时间中断一次,发送时中断仅仅只是模拟物理层将多组模拟UART接口的TX数据位送出;C.各组模拟UART接口的RX引脚中任一出现中断请求则触发接收请求,同时令芯片的第二定时器启动,第二定时器每隔一段时间中断一次,中断时只采样各模拟UART接口接收端口状态并保存到缓冲区。
文档编号G06F13/38GK102880576SQ20121005946
公开日2013年1月16日 申请日期2012年3月8日 优先权日2012年3月8日
发明者王炎喜, 董有议, 熊金华 申请人:深圳市华旭科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1