一种串行通信的方法和系统 【技术领域】
本发明涉及串行通信的技术, 特别涉及一种串行通信的方法和系统。背景技术 串行通信是使用一条数据线将数据一位一位地依次传输, 每一位数据占据一个固 定的时间长度, 只需少数几条数据线就可在系统间交换信息, 特别适用于计算机与计算机、 计算机与外设之间的远距离通信。
数据线由同步字符、 数据字符和校验字符 CRC 组成。同步字符位于帧开头, 用于确 认数据字符的开始。 数据字符在同步字符之后, 个数没有限制, 由所需传输的数据块长度来 决定。校验字符有 1 到 2 个, 用于在接收端对接收到的字符序列进行正确性校验。同步通 信的缺点是要求发送时钟和接收时钟保持严格的同步。
串行传输速度通用异步接收 / 发送装置 UART 的最大速度为 115.20kbp/s, 可以满 足电话本, 短信等少量信息的传输, 在增强型数据速率 GSM 演进技术 EDGE 下通过 UART 拨号 上网已经不能满足要求, 这时需要 USB1.1, 但在 3G 的需求下, 一般的客户要求的下载速率 在 7Mbp/s 左右, 需要 USB2.0 技术。随着长期演进 LTE 技术的发展, 要满足大于 1Gbp/S 的 速率, USB2.0 技术和未来的 USB3.0 技术显然是不能满足要求的。
主机运行 USB 的操作系统软件支持两种不同的功能, 设备初始化和监控设备运行 过程, USB 初始化软件不仅在 PC 主机启动期间是活动的, 而且在所有运行期间都应该是活 动的, 正因为这样, USB 设备在任何时候都可以增加和删除, 一旦有一个设备接入到一台 PC 主机, 设备就被 USB 初始化软件识别并且分配一个在运行时期使用的唯一的标识符。
PC 主机的下面是 USB 主机控制器, 向下产生对外设的处理动作, 并将处理动作交 给根集线器, 根集线器提供 PC 对外的 USB 接口。 如果需要增加 USB 接口的个数, 则需要使用 集线器。集线器介于根集线器与外设之间, 主要用来接收和转发通信数据。目前使用的主 机和设备之间的通讯, 通知设备必须通过配置设备, 为了进行通知, 使用专用的通知机制, 通过消息告知哪些消息哪些设备的存储器传输组播消息。
从目前的串行通信方式看, 所有的数据是广播的形式, 例如, 主机发出的标记会发 给所有的设备, 然后设备相关存储器根据包中的地址域判断是不是主机发给自己的数据 包。这样浪费了带宽资源也降低了通信的速率。
发明内容 本发明的目的在于提供一种串行通信的方法, 用于更好地解决带宽资源受限和提 高串行通信速率的问题。
本发明的另一目的在于提供一种串行通信的系统, 用于更好地解决带宽资源受限 和提高串行通信速率的问题。
根据本发明的一个方面, 提供了一种串行通信的方法, 包括以下步骤 :
A、 主机通过检测连接到其串口上的设备, 生成包含串口标识的设备地址信息 ;
B、 主机向设备发送包含设备地址的通知消息 ;
C、 设备收到通知消息后, 经由串口向主机发送包含设备地址的应答消息 ;
D、 设备在发送应答消息后向主机发送有用信息, 或者主机在收到应答消息后向设 备发送有用信息。
根据本发明的另一方面, 提供了一种串行通信的系统, 包括 :
主机, 用于检测连接到其串口上的设备, 生成包含串口标识的设备地址信息, 向设 备发送包含设备地址的通知消息, 并在收到应答消息后向设备发送有用信息 ;
设备, 用于在收到通知消息后经由串口发送所述设备地址的应答消息, 并在发送 应答消息后向主机发送有用信息。
与现有技术相比较, 本发明的有益效果在于 : 本发明通过主机检测连接到串口上 的设备生成设备地址信息实现主机和设备存储器之间的一对一通信, 不仅节省带宽, 而且 能够提高数据的传输速率。 附图说明
图 1 是本发明提供的串行通信的方法流程示意图 ; 图 2 是本发明提供的串行通信的系统结构示意图 ; 图 3 是本发明实施例提供的主机发出的通知消息的结构示意图 ; 图 4 是本发明实施例提供的设备发出的应答消息的结构示意图 ; 图 5 是本发明实施例提供的没有中继器的串行通信的方法流程图 ; 图 6 是本发明实施例提供的有中继器的串行通信的方法流程图 ; 图 7 是本发明实施例提供的主机和设备双向发送消息的流程图。具体实施方式
以下结合附图对本发明的优选实施例进行详细说明, 应当理解, 以下所说明的优 选实施例仅用于说明和解释本发明, 并不用于限定本发明。
图 1 显示了本发明提供的串行通信的方法流程示意, 如图 1 所示 :
步骤 S101, 主机检测连接到其串口上的设备, 得到串口标识, 生成包含串口标识的 设备地址信息, 若主机与设备间需要中继器转发消息, 则设备地址信息中还包括中继器的 端口号。
步骤 S102, 若主机需要向设备发送信息, 则根据生成的设备地址信息向设备发送 包含设备地址的通知消息。 通知消息包括设备地址信息、 通知消息类型、 可变地址与和主机 资源的使用情况。
主机对设备有两类通知消息, 一类是主机要求设备向主机发送数据, 另一类是主 机对设备发送数据。
步骤 S103, 设备收到通知消息后, 经由串口向主机发送包含设备地址的应答消息。
若主机发送的通知消息为主机要求设备向主机发送数据, 则设备有可能发送以下 三类应答消息 : 1、 表示通知消息无误接收到 ; 2、 表示通知消息无误接收到, 但设备处于妨 碍其接收的状态, 主机应重新发送 ; 3、 设备出错被停止。其中, 若设备发送的应答消息为通 知消息无误接收到, 则设备在发送此应答消息可以同时发送有用信息, 若设备发送的应答消息为设备处于妨碍其接收的状态或设备出错被停止, 则设备仅发送该应答消息, 不发送 有用信息。
若主机发送的通知消息为主机对设备发送数据, 则设备有可能发送以下三类应答 消息 : 1、 表示通知消息无误接收到 ; 2、 表示通知消息无误接收到, 但设备处于妨碍其接收 的状态, 主机应重新发送 ; 3、 设备出错被停止。其中, 若主机接收到的应答消息为通知消息 无误接收到, 则主机继续发送下一个数据包, 若主机接收到的应答消息为设备处于妨碍其 接收的状态或设备出错被停止, 则主机应停止发送下一数据包。
步骤 S104, 设备在发送应答消息后向主机发送有用信息, 或者主机在收到应答消 息后向设备发送有用信息。
图 2 显示了本发明提供的串行通信的系统结构示意, 如图 2 所示, 该系统包括主 机、 设备和中继器, 其中主机和设备相连, 主机和中继器相连, 中继器和主机相连。其中, 主 机和中继器可以集成在一起, 设备也可以与中继器集成在一起。
其中, 主机用于检测连接到其串口上的设备, 生成包含串口标识的设备地址信息, 根据设备地址信息一对一向设备发送包含设备地址的通知消息, 并在收到应答消息后根据 该应答消息判断是否向设备发送有用信息。
若主机接收到的应答消息为通知消息无误接收到, 则主机继续发送下一个数据 包, 若主机接收到的应答消息为设备处于妨碍其接收的状态或设备出错被停止, 则主机应 停止发送下一数据包。
设备用于在收到通知消息后经由串口发送所述设备地址的应答消息, 并在发送应 答消息后向主机发送有用信息。
若设备发送的应答消息为通知消息无误接收到, 则设备在发送此应答消息可以同 时发送有用信息, 若设备发送的应答消息为设备处于妨碍其接收的状态或设备出错被停 止, 则设备仅发送该应答消息, 不发送有用信息。
图 3 显示了本发明实施例提供的主机发出的通知消息的结构示意, 如图 3 所示, 主 机与设备通信之前首先要发通知消息 PAGING1 或 PAGING2, 主机发送到设备的通知消息至 少包含 ID, ADDR 和 CON 三个域。
其中, ID 是接收通知消息的设备地址及其它找到设备的有用信息和通知消息的类 型。
ADDR 是可变地址域, 当有设备增加时 ADDR 的取值范围增加, 当设备减少时, ADDR 的取值范围减少, 主机对 ADDR 根据设备的插入和拔出动态调节地址范围和域的字节数, 可 连接的设备数量不受限制。
CON 是目前主机资源的使用情况, 在主机和设备之间通信时, 主机和设备之间有必 要互相了解带宽和对方的缓存资源, 包含多长时间设备可以向主机发送多大的数据包, 也 包含主机和设置之间交互其他的有理由提交资源利用的其他有效信息。
图 4 显示了本发明实施例提供的设备发出的应答消息的结构示意, 如图 4 所示, 设 备对主机的应答消息 ANSWER 包含 ID, CON 和 EMP。
其中, ID 是接收通知消息的设备地址及其它找到设备的有用信息和应答消息的类 型。
CON 是目前设备的资源使用情况, 主机根据设备的资源使用情况, 决定对设备反映和主机如何发送, 何时给设备发送有用信息。
EMP 是设备向主机发送消息的内容。
图 5 显示了本发明实施例提供的没有中继器的串行通信的方法流程, 如图 5 所示, 主机对设备有两种通知, 一种是主机要求设备向主机发送数据, 一种是主机对设备发送数 据, 这两种通知分别是图中的 PAGING1 和 PAGING2, 但是都包含 ID, ADDR 和 CON, 在设备收 到 PAGING1 后, 设备响应主机的应答 ANSWER, 或者发送有用信息 INFO1。主机向设备发送 PAGING2 时, 设备向主机发送有用信息 INFO2, 设备也可根据目前自己的情况, 比如, 现在缓 冲池是满的, 不能接收主机的发送来的数据, 不应答, 如果收到数据, 也可以使用上文中提 到的 ANSWER 进行应答, 如果设备准备好接收数据, 主机给设备发送有用信息 INFO2。
图 6 显示了本发明实施例提供的有中继器的串行通信的方法流程, 如图 6 所示, 主 机发往设备和设备发往主机的数据包经过中继器处理, 但是经过中继器处理后的 PAGING1 和经过中继器处理后的 PAGING2 包含主机向设备发送的通知消息, 经过中继器处理后的 ANSWER 和经过中继器处理后的 ANSWERH 包含设备向主机发送的应答消息。
图 7 显示了本发明实施例提供的主机和设备双向发送消息的流程, 如图 7 所示, 当 主机准备好接收数据的时候, 它发出通知 PAGING1, 设备返回数据包, 或者如果设备不能返 回数据包, 则返回设备没有传输数据到主机或者不会从主机接收数据的 ANSWER1 或者设备 不能传输或者接收数据的 ANSWER2 作为应答, 这时的主机不等到设备对主机前一个输入信 息的确认, 可以继续向设备发送通知消息, 而是在主机和设备之间同时进行数据的发送和 接收。 综上所述, 本发明具有以下技术效果 : 本发明提出了一种新的数据结构, 提出了主 机和设备存储器之间的通信是特定的, 即主机和设备之间的数据通信是一对一的, 既节省 带宽, 也提高了数据传输速率, 同时, 地址域的变化不限于外围设备的增加和减少, 节省资 源。
尽管上文对本发明进行了详细说明, 但是本发明不限于此, 本领域技术人员可以 根据本发明的原理进行各种修改。 因此, 凡按照本发明原理所作的修改, 都应当理解为落入 本发明的保护范围。