[发明专利]一种串口通信方法与装置有效
申请号: | 201210031090.1 | 申请日: | 2012-02-13 |
公开(公告)号: | CN102629240A | 公开(公告)日: | 2012-08-08 |
发明(设计)人: | 钱红燕;张力 | 申请(专利权)人: | 上海创远仪器技术股份有限公司 |
主分类号: | G06F13/38 | 分类号: | G06F13/38 |
代理公司: | 北京鑫媛睿博知识产权代理有限公司 11297 | 代理人: | 龚家骅 |
地址: | 200233 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 串口 通信 方法 装置 | ||
1.一种串口通信装置,其特征在于,包括:应用程序模块、串口芯片驱动模块以及串口通信控制模块,其中:
串口芯片驱动模块,用于提供发送接口,当所述发送接口被应用程序模块调用时,将用户缓冲区中的数据拷贝到发送硬件缓冲区;接收来自串口通信控制模块发送的中断信号,并当接收到中断信号时,将接收硬件缓冲区中的数据拷贝到用户缓冲区;
串口通信控制模块,用于接收数据,将接收到的数据存储在接收硬件缓冲区中,并向所述串口芯片驱动模块发送中断信号;将发送硬件缓冲区的数据发送出去。
2.如权利要求1所述的串口通信装置,其特征在于,所述串口芯片驱动模块具体通过以下方式将接收硬件缓冲区中的数据拷贝到用户缓冲区:
所述串口芯片驱动模块调用所述应用程序模块的回调函数,由该回调函数调用所述串口芯片驱动模块的接收接口将所述接收硬件缓冲区中的数据拷贝到用户缓冲区。
3.如权利要求1所述的串口通信装置,其特征在于,所述串口通信装置中设置有多个接收硬件缓冲区,以及分别对应各接收硬件缓冲区的备份缓冲区,并对应所述接收硬件缓冲区和备份缓冲区分别设置有接收硬件缓冲区指针数组和备份缓冲区指针数组,其中,所述接收硬件缓冲区指针数组中各元素分别指向对应的接收硬件缓冲区,所述备份缓冲区指针数组中各元素分别指向对应的备份缓冲区;
所述串口通信控制模块具体用于,将接收到的数据存储到接收硬件缓冲区,并当接收硬件缓冲区装满或在预设时间内未再接收到数据时,向所述串口芯片驱动模块发送中断信号;
所述串口芯片驱动模块具体用于,当接收到所述串口通信控制模块的中断信号时,将指向该接收硬件缓冲区的元素指向对应该接收硬件缓冲区的备份缓冲区,并将指向该备份缓冲区的元素指向该接收硬件缓冲区;将该接收硬件缓冲区中的数据拷贝到用户缓冲区。
4.如权利要求1所述的串口通信装置,其特征在于,
所述串口通信控制模块具体用于,当接收硬件缓冲区装满或接收完一帧数据时,向所述串口芯片驱动模块发送中断信号;其中,所述一帧数据包括同步头、帧头以及数据;
所述串口芯片驱动模块具体用于,当接收到所述串口通信控制模块发送的中断信号时,将接收硬件缓冲区中的数据以数据帧的形式拷贝到用户缓冲区。
5.如权利要求1所述的串口通信装置,其特征在于,所述接收硬件缓中区、发送硬件缓冲区以及用户缓冲区的起始地址为4的整数倍,且所述接收硬件缓冲区、发送硬件缓冲区以及用户缓冲区的大小为4字节的整数倍。
6.一种利用如权利要求1所述的串口通信装置实现的串口通信方法,其特征在于,该方法包括:
应用程序模块通过调用所述串口芯片驱动模块的发送接口,由所述串口芯片驱动模块将用户缓冲区中的用户数据拷贝到发送硬件缓冲区,并由所述串口通信控制模块发送所述发送硬件缓冲区中的用户数据;
当所述串口通信装置接收数据时,串口通信控制模块将接收到的数据存储到接收硬件缓冲区,并向所述串口芯片驱动模块发送中断信号,由所述串口芯片驱动模块将接收硬件缓冲区中的数据拷贝到用户缓冲区。
7.如权利要求6所述的方法,其特征在于,所述串口芯片驱动模块将接收硬件缓冲区中的数据拷贝到用户缓冲区,具体为:
所述串口芯片驱动模块调用所述应用程序模块的回调函数,由该回调函数调用所述串口芯片驱动模块的接收接口将所述接收硬件缓冲区中的数据拷贝到用户缓冲区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海创远仪器技术股份有限公司,未经上海创远仪器技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210031090.1/1.html,转载请声明来源钻瓜专利网。