[发明专利]用于嵌入式系统的模拟串口方法有效
申请号: | 201110396365.7 | 申请日: | 2011-12-02 |
公开(公告)号: | CN102521183B | 公开(公告)日: | 2018-01-26 |
发明(设计)人: | 杨进 | 申请(专利权)人: | 深圳市科陆电子科技股份有限公司 |
主分类号: | G06F13/38 | 分类号: | G06F13/38 |
代理公司: | 深圳国新南方知识产权代理有限公司44374 | 代理人: | 曹镇,崔春 |
地址: | 518000 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 嵌入式 系统 模拟 串口 方法 | ||
技术领域
本发明涉及一种用于嵌入式系统以使用软件的方式模拟串口的方法,利用MCU的通用IO引脚及可中断IO引脚的中断结合定时器中断以软件的方式模拟串口完成数据的接收及发送。
背景技术
在工业领域串口使用及其普遍,很多成熟产品经常会出现由于客户需求的变化,需要增加某些功能,而这些功能需要用到额外的串口,但是现有的成熟产品又没有额外的空闲串口,对于这种需求如果采取更换MCU或者增加额外的串口扩展芯片来解决既不经济又增加额外的研发设计成本。
发明内容
本发明通过利用MCU的IO引脚及定时器中断模拟串口进行数据的接收和发送,在不更换MCU及增加额外的串口扩展芯片的情况下,增加串口减少产品的研发投入及硬件成本。
为了实现上述目的,本发明的技术方案是通过MCU的可中断IO引脚、通用IO引脚和定时器模拟串口。在模拟串口接收数据时,MCU的接收引脚中断触发启动采样定时器,所述采样定时器的定时间隔根据模拟串口设定的波特率计算得到,定时器启动后在每个采样间隔对模拟串口的接收IO的状态进行采样,得到当前时刻串口接收的数据流的一个数据位的状态,当采样到一个字节的数据位之后停止采样,根据本周期内的采样到的数据位拼合成一个字节的数据。模拟串口发送数据时,根据模拟串口波特率设定定时器周期,启动定时器,每个周期中根据要发送的数据的数据位设定模拟串口发送数据脚的状态,当一个字节的数据发送完成后停止定时器。
作为具体化,所述模拟串口接收数据的步骤为:
①设置MCU模拟串口的接收引脚的IO为低电平触发中断,其中所述接收引脚为可中断IO引脚;
②当模拟串口接收引脚触发中断后根据模拟串口设置的波特率计算出定时器的周期,禁止模拟串口接收引脚的触发中断,启动定时器;
其中,步骤②中所述的定时器周期=1/(模拟串口波特率*2)
③定时器首次触发中断后读取模拟串口的接收引脚的状态,如果模拟串口接收引脚的状态为高电平则表示模拟串口接收数据出错,禁止定时器,回到步骤①;
如果模拟串口接收引脚的状态为低电平则表示模拟串口接收数据起始位正确,重新设定定时器周期,重新启动定时器,跳转到步骤④继续;
其中,步骤③中所述的定时器周期=1/模拟串口波特率
④定时器触发中断后读取模拟串口的接收引脚的状态,如果模拟串口接收引脚的状态为高电平则表示模拟串口接收到一位值为1的数据;
如果模拟串口接收引脚的状态为低电平则表示模拟串口接收到一位值为0的数据;
保持定时器周期不变,重新启动定时器;
⑤重复上述步骤④,重复N次后,无校验位通信跳转到步骤⑥,有校验位通信则跳转到步骤⑦;
其中,N=模拟串口设定的数据位+模拟串口设定的停止位+模拟串口设定的校验位
⑥把接收到的数据按位拼合成字节存入接收缓冲区,通知上层应用程序已接收到一个字节数据;
⑦统计接收到的数据位的高位的个数和设定的奇偶校验对比,如果统计出的高位的个数和设定的奇偶校验一致,则把接收到的数据按位拼合成字节存入接收缓冲区,通知上层应用程序已接收到一个字节数据;如果统计出的高位的个数和设定的奇偶校验不一致,丢弃本次接收到的数据位;
⑧停止定时器同时禁止定时器中断,重复步骤①至⑦完成持续数据接收过程。
作为具体化,所述模拟串口发送数据的步骤为:
(1)无数据发送时保持发送引脚为高电平,其中发送引脚为通用IO引脚;
(2)当用户需要发送数据时,设定定时器周期,置发送引脚为低电平,启动定时器;
其中,步骤(2)中所述的定时器周期=1/模拟串口波特率
(3)定时器中断后,根据待发送数据的最低位设定发送引脚的电平把正在发送的数据右移一位;
其中,最低位为1则设置发送引脚保持高电平,最低位为0则设置发送引脚保持低电平
(4)重复步骤(3)直至当前字节发送完成,无校验发送数据跳转到步骤(5),有奇偶校验则跳转到步骤(6);
(5)置发送引脚为高电平,完成当前字节的发送,跳转到步骤(1)继续下个字节的发送;
(6)根据设定的奇偶校验及步骤(3)~(4)中发送的1的个数设置下面一个定时周期内的发送引脚的电平;
(7)置发送IO为高电平,完成当前字节的发送并保持本次设定的定时器周期为2个以上的周期,跳转到步骤(1)继续下个字节的发送。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市科陆电子科技股份有限公司,未经深圳市科陆电子科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110396365.7/2.html,转载请声明来源钻瓜专利网。