一种通用异步收发报机的控制方法及其装置的制作方法

文档序号:7711516阅读:190来源:国知局
专利名称:一种通用异步收发报机的控制方法及其装置的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种通用异步收发报机(Universal Asynchronous Receiver Transmitter,简称UART )的控制方法及其装置。
背景技术
UART应用广泛,已成为低速率串行通讯的标准设备,许多通讯处理器 在片内集成有UART模块。但UART应用在半双工通讯、总线式全双工通 讯场景中有一个缺陷,即它不提供真正意义上的数据发送完成中断,具体如 下
数据发送时,UART仅提供发送存储寄存器空中断(transmitter holding register empty interrupt), 该中断对应发送存储寄存器(transmitter holding register)的内容移入移位发送寄存器(shift transmitter register)事件。该中 断发生时,刚移入移位发送寄存器的数据此时处于待发状态,尚未发出。而 移位发送寄存器的内容发完时UART并不产生中断。
而在半双工、总线式全双工通讯场景中, 一个设备在发送完数据后,一一 般需要立即释放数据发送权,并且从发送完成到总线释放之间的时间间隔尽 可能短,使其他设备可以在该设备发送完成后立刻获得并^f吏用数据发送权而 不产生总线沖突。在这类应用场景中,由于UART不提供数据发送完成中 断这一控制机制,需要UART在数据发送完成时刻的相关控制只能通过引 入额外机制才能准确实现。
当前主要通过以下4种方案来解决该问题,包括
A.在UART产生的发送存储寄存器空中断中启动一个软件延时,计时 长度等于UART发送完移位寄存器里的数据所需的时间,之后执行发送完 成对应的控制操作。B. 将方法A中的延时改成循环读取UART发送完成标志,首次读到标 志为真时执行发送完成对应的控制操作。
C. UART的发送存储寄存器空中断发生后,暂时不清除中断标志,让 中断持续发生,并在中断里读取UART发送完成标志。首次读到发送完成 标志为真时执行发送完成对应的控制操作,然后清除该中断标志。
D. 分别给UART的每一个通道配备一个硬件定时器,当UART产生发 送存储寄存器空中断且发送緩沖区为空时,启动这个硬件定时器进行单次定 时,定时长度为最后一个数据发送完所需时间。定时器中断发生时,执行发 送完成对应的控制操作并关闭该定时器。
但上述4种方案均有一定缺陷
方案A、 B简单但控制准确性差,因为多任务处理环境下A、 B这类基 于软件延时、软件查询的方式会因其所在软件任务被抢占而错过控制时机; 此外方案A、 B存在严重的CPU处理能力浪费问题,原因是方案A、 B在 延时期间CPU在做无用功。CPU浪费与UART速率成反比,即UART传输 速度越低CPU浪费越大,以2400bps传输场景为例,々ii殳每个字节传输对 应10bit,则每次至少浪费4ms的CPU处理时间。
方案C简单、控制准确性好,但和方法A、 B—样,也存在严重的CPU 处理能力浪费问题。
方案D相对较好,动作准确、CPU开销小,但每个UART通道需要一 个额外硬件定时器资源来支持,并且实现起来也比较复杂。
因此,当前需要一种技术方案来解决上述当前方案存在的问题。

发明内容
本发明所要解决的技术问题是提供一种通用异步收发报机的控制方法 及其装置,解决了当前技术方案在UART发送完成时刻控制上存在的动作 准确'性问题、软硬件资源开销问题以及实现复杂度问题。
为了解决上述问题,本发明提供了一种通用异 收发报机的控制方法, 包括通信主控方的CPU在写入通用异步收发报机UART的待发数据序列末 尾增加一冗余数据,并将所加所述冗余数据写入该UART;
当所述CPU将所加所述冗余数据写入所述UART产生发送存储寄存器 空中断时,所述CPU通过该发送存储寄存器空中断对所述UART进行控制。
本发明还提供了一种通用异步收发报机的控制装置,包括CPU,用于
并将所加所述冗余数据写入该UART;当将所加所述冗余数据写入所述 UART产生发送存储寄存器空中断时,通过该发送存储寄存器空中断对所述 UART进行控制。
与现有技术相比,应用本发明,能够在UART现有硬件资源的基础上 实现,无需增加硬件的额外开销,软件开销小且易于实现,提高了控制准确 性。


图1是使用UART的半双工通信装置图; 图2是UART的发送工作原理图3是本发明的通用异步收发报机的控制方法的流程图4是本发明实例中某型基站中心控制板的半双工通信装置图5是本发明实例中某型基站中心控制板使用UART的半双工通信的 方式E的流程图6是本发明实例中某型基站中心控制板使用UART的半双工通信的 方式F的流程图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步说明。
如图1所示的通讯系统中,该系统主要由通信主控方A及其通讯对象B 组成。其中,通信主控方A包括CPU、 UART、总线控制命令锁存单元、半双工UART驱动器4个部分。通讯对象B则是暗箱i殳备,制造商仅提供其 通讯接口电气特性定义(半双工485 )以及通讯文格式定义。设备B对外部 命令的响应时间在几毫秒至几秒之间。设备B平时处于侦听状态,当收到 命令地址是指向自己的命令后向通信主控方A发送应答报文。
本发明的主要构思在于在通信主控方A的CPU写给UART的原待发 数据序列末尾增加一冗余数据形成新数据序列,以该新数据序列为发送数 据。当发送数据末尾的新增冗余数据被写入UART后,它对应的发送存储 寄存器空中断发生时,刚好是原待发数据序列最后 一个数据的发送完成时 刻,所以此发送存储寄存器空中断就可以作为原待发数据序列的发送完成中 断来用。至于该新增的冗余数据对系统的影响,可以通过关闭UART当前 通道的发送功能或者关闭相应外接总线驱动器的发送功能等方式方法来消 除。
图2是UART的发送工作原理图。
其中,对于UART的冗余数据的插入可以通过以下两种方式实现1、 在应用层插入冗余数据,即CPU向UART写入待发数据序列前,在发送给 UART的待发数据序列末尾直接增加一冗余数据;2、在驱动层插入冗余数 据,即CPU向UART发送完待发数据后,CPU再向UART的发送存储寄 存器写入一个任意数据。
如图3所示,本发明的通用异步收发报机的控制方法,包括以下步骤
步骤300:通信主控方的CPU设置外接总线驱动器为发送模式,并使能 UART当前通道的发送功能;
步骤310:通信主控方的CPU向UART发送由待发数据序列和在该待 发数据序列末尾增加的冗余数据组成的新数据序列,直至该冗余数据也被写 入UART;
步骤320:当所加冗余数据产生发送存储寄存器空中断时,CPU在该中 断的中断服务函数里关闭UART当前通道发送功能或者关闭UART相应总 线驱动器的发送功能来消除冗余数据对系统的影响;
步骤330: CPU执行UART数据发送完成时的操作,并做本次发送后的处理。
执行UART数据发送完成时刻所需的操作,可以是指打开UART当 前通道的外接总线驱动器的接收使能,接收通讯对象设备发送的响应电文。
本发明的通用异步收发报机的控制装置,主要包括CPU,用于在写入 所述通用异步收发报机UART的待发数据序列末尾增加一冗余数据,并将 所加所述冗余数据写入该UART;当将所加所述冗余凄t据写入所述UART 产生发送存储寄存器空中断时,通过该发送存储寄存器空中断对所述UART 进行控制。
所述CPU在写入所述UART的待发数据序列末尾增加一冗余数据,并 将所加所述冗余数据写入该UART,具体是指
所述CPU在发送给所述UART写入待发数据序列前,在发送给UART 的待发数据序列末尾直接增加一冗余数据形成新数据序列,并将该新数据序 列写入该UART;
或者所述CPU向所述UART写入完待发数据序列后,再向该UART的 发送存储寄存器写入一 冗余数据。
所述CPU,还用于将所述新数据序列写入所述UART前,设置外接总 线驱动器为发送模式,并使能所述UART当前通道的发送功能。
所述CPU将所加所述冗余数据写入所述UART产生发送存储寄存器空 中断时,通过该发送存储寄存器空中断对所述UART进行控制,是指所 述CPU关闭所述UART当前通道发送功能或者关闭所述UART相应总线驱 动器的发送功能,消除该冗余数据对系统的影响。
所述CPU关闭所述UART当前通道发送功能是指所述CPU在所述中断 的中断服务函数里关闭所述UART当前通道发送功能。
下面是本发明所述方法应用在某微型移动通讯基站中心控制板中 UART数据传输控制过程的实例。
该控制板硬件主要有4个部分CPU、 UART、 FPGA (现场可编程门阵 列)以及半双工485驱动芯片。其中,UART为包含有4个通道的TL16C554。 UART通道1、 2和3均工作于全双工点对点冲莫式下,与本发明所述方法无关;通道0应用了本发明所述的控制方法,外接有1片MAX3485E(Dallas 公司生产的半双工485驱动芯片),与3个环境监控仪表共用一个3线的半 双工485总线进4亍通讯,具体如图4所示。
半双工485总线上,控制板为主设备,3个仪表为从设备,分别为温度 表、湿度表以及电源监控仪表。主从之间通过命令/响应方式交互,各仪表 命令报文不同、编址不同。各仪表仅响应编址指向自己的命令。数据格式 1个启动位、1个停止位、无校验位以及8bit数据,速率为2400bps。
该实例中包括两种方式方式E是在向UART写4寺发数据发送前进行 冗余数据插入,适用在应用层实现;方式F则是在向UART写完待发数据 后进行冗余数据插入,适用在驱动层实现。
以上两种实现方式没有实质差别,区别仅在于冗余数据的插入阶段的不同。
方式E的步骤如图5所示
步骤500: CPU置通道0外接总线驱动器为只发模式(send only mode );
步骤510: CPU构造在待发数据序列末尾增加一个字节,生成新的待发 数据序列,并发送新数据序列,直至新数据序列的最后一个字节已写入 UART;
步骤520: UART通道O产生发送存储寄存器空中断,在该中断的中断 服务函数里关闭通道0外接总线驱动器的发送使能,用于消除冗余数据对系 统的影响;
步骤530: CPU打开通道0外接总线驱动器的接收^f吏能,准备接收从设 备的响应电文。
方式F的步骤如图6所示
步骤600: CPU置通道0外接总线驱动器为只发模式(send only mode );
步骤610: CPU向UART写入待发数据,直至最后一个数据产生的发 送存储寄存器空中断,在该中断里再向UART通道0的发送存储寄存器写 入一个任意字节并退出中断;
步骤620: UART通道O再次产生发送存储寄存器空中断,在该中断的中断服务函数里关闭通道0外接总线驱动器的发送使能,用于消除冗余数据 对系统的影响;
步骤630: CPU打开UART通道O外接总线驱动器的接收使能,准备接 收,人i殳备的响应电文。
经过实际测试证明,本发明所述的方法在没有额外硬件资源支持的情况 下,达到了当前方案可以达到的最佳性能。
本发明所述方法简捷、清晰,易于实现且无额外硬件资源需求,可以作 为UART应用于半双工点对点、总线式全双工场景下的一个通用方法,随 UART广泛应用于串行通讯领域。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范 围应该以权利要求的保护范围为准。
权利要求
1、一种通用异步收发报机的控制方法,其特征在于,包括通信主控方的CPU在写入通用异步收发报机UART的待发数据序列末尾增加一冗余数据,并将所加所述冗余数据写入该UART;当所述CPU将所加所述冗余数据写入所述UART产生发送存储寄存器空中断时,所述CPU通过该发送存储寄存器空中断对所述UART进行控制。
2、 如权利要求1所述的控制方法,其特征在于,所述通信主控方的CPU在写入所述UART的待发数据序列末尾增加一 冗余数据,并将所加所述冗余数据写入该UART,是指所述CPU在发送给所述UART写入待发数据序列前,在发送给UART 的待发数据序列末尾直接增加一冗余数据形成新凄t据序列,并将该新数据序 列写入该UART;或者所述CPU向所述UART写入完待发数据序列后,再向该UART的 发送存储寄存器写入一 冗余数据。
3、 如权利要求1所述的控制方法,其特征在于,所述CPU将所述新数据序列写入所述UART前,还包括所述CPU设 置外接总线驱动器为发送模式,并使能所述UART当前通道的发送功能。
4、 如权利要求1所述的控制方法,其特征在于,当所述CPU将所加所述冗余数据写入所述UART产生发送存储寄存器 空中断时,所述CPU通过该发送存储寄存器空中断对所述UART进行控制, 是指所述CPU关闭所述UART当前通道发送功能或者关闭所述UART相 应总线驱动器的发送功能,消除该冗余数据对系统的影响。
5、 如权利要求4所述的控制方法,其特征在于,所述CPU关闭所述UART当前通道发送功能是指所述CPU在所述中断 的中断服务函数里关闭所述UART当前通道发送功能。
6、 一种通用异步收发报机的控制装置,其特征在于,包括CPU,用于在写入所述通用异步收发报机UART的待发数据序列 末尾增加一冗余数据,并将所加所述冗余数据写入该UART;当将所加所述 冗余数据写入所述UART产生发送存储寄存器空中断时,通过该发送存储 寄存器空中断对所述UART进行控制。
7、 如权利要求6所述的控制装置,其特征在于,所述CPU在写入所述UART的待发数据序列末尾增加一冗余数据,并 将所加所述冗余数据写入该UART,是指所述CPU在发送给所述UART写入待发数据序列前,在发送给UART 的待发数据序列末尾直接增加一冗余数据形成新数据序列,并将该新数据序 列写入该UART;或者所述CPU向所述UART写入完待发数据序列后,再向该UART的 发送存储寄存器写入一 冗余数据。
8、 如权利要求6所述的控制装置,其特征在于,所述CPU,还用于将所述新数据序列写入所述UART前,设置外接总 线驱动器为发送模式,并使能所述UART当前通道的发送功能。
9、 如权利要求6所述的控制装置,其特征在于,所述CPU将所加所述冗余数据写入所述UART产生发送存储寄存器空 中断时,通过该发送存储寄存器空中断对所述UART进行控制,是指所 述CPU关闭所述UART当前通道发送功能或者关闭所述UART相应总线驱 动器的发送功能,消除该冗余数据对系统的影响。
10、 如权利要求9所述的控制装置,其特征在于,所述CPU关闭所述UART当前通道发送功能是指所述CPU在所述中断 的中断服务函数里关闭所述UART当前通道发送功能。
全文摘要
本发明公开了一种通用异步收发报机的控制方法及其装置,包括通信主控方的CPU在写入UART的待发数据序列末尾增加一冗余数据,并将所加所述冗余数据写入该UART;当CPU将所加所述冗余数据写入所述UART产生发送存储寄存器空中断时,所述CPU通过该发送存储寄存器空中断对所述UART进行控制。用本发明,能够在UART现有硬件资源的基础上实现,无需增加硬件的额外开销,软件开销小且易于实现,提高了控制准确性。
文档编号H04L1/22GK101631012SQ20091016369
公开日2010年1月20日 申请日期2009年8月13日 优先权日2009年8月13日
发明者伟 朱, 冉 贾 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1