一种自动访问的串行总线读写控制方法

文档序号:6600101阅读:231来源:国知局
专利名称:一种自动访问的串行总线读写控制方法
技术领域
本发明涉及计算机通信技术领域,特别涉及一种自动访问的串行总线读写控制方法。
背景技术
中央处理单元(Central Process Unit,简称CPU)及其外围器件之间的互联往往采用局部总线,如外设组件互连标准(Peripheral Component Interconnect,简称PCI)局 部总线。随着技术的进步,对局部总线的数据传输速度要求越来越高,并且CPU对外设的控 制需要有简单、可靠、传输距离远等的特点,于是高速串行总线随之诞生。目前出现的高速 串行总线多种多样,有非标准化的,也有标准化的,例如SPI、I2C、UART等,这些高速串行总 线的通信行为都是由CPU主导,需要CPU配置特定的地址空间和操作命令。这些高速总线 往往存在以下问题1)传统的点对点或点对多点的通信方式,CPU 一次只能操作一次点对点通信,多 点通信必须通过多次通信操作完成,通信读写效率不高;2) 一些通信总线可实现远端读写操作,但是只能实现在CPU控制下的单次读写, 不能对要求的地址范围完成自动读写操作;3) 一般通信总线只能传递CPU读写控制的数据,不能同时传递实时数据。

发明内容
针对现有技术的上述不足,本发明的目的在于提供一种自动访问的串行总线读写 控制方法,以提高多个外设与主控设备之间串行数据通信的效率。本发明的目的是这样实现的一种自动访问的串行总线读写控制方法,用于主控 设备与多个外设之间的串行数据通信;所述主控设备的串行控制主模块与外设的串行控制 从模块通过串行总线连接,并以传统的串行数据通信方式进行通信;主控设备的串行控制 主模块分别与主控设备的CPU和RAM存储器通过并行读写接口连接,完成串行控制主模块 与CPU之间的串行总线读写;其特征在于串行控制主模块与CPU之间的串行总线读写采 用如下步骤进行控制a) CPU对外设编制地址信息,以地址信息区分不同的外设;b)串行控制主模块获取CPU的工作状态,确定CPU时处于空闲状态还是处于繁忙 状态;当CPU处于空闲状态时执行步骤C),当CPU处于繁忙状态时执行步骤d);C)由主控设备的CPU与串行控制主模块进行数据读写操作,直接通过串行控制主 模块访问目标地址信息所对应的外设;d)串行控制主模块将包含地址信息的数据读写操作切换到主控设备内部的RAM 存储器上,将读写的数据信息连同外设的地址信息分址地存储在RAM存储器中;在CPU空闲 后,再由CPU对RAM存储器进行读写操作,提取RAM存储器中存储的地址信息和数据信息。进一步地,所述串行控制主模块与CPU之间的串行总线读写的数据采用串行帧结构进行传输,所述串行帧包括同步码、控制码、地址码、数据码、状态码、保留码和奇偶效验码;其中,同步码用于完成串行数据的帧头定位与同步;控制码用于传送读写控制信号 和模式选择信号;地址码用于传送外设的地址信息;数据码用于传送与外设通信的有效数 据;状态码用于指示信息传输状态;保留码用于传送根据外设定义的数据信息;奇偶校验 码用于数据效验,并作为串行帧的帧尾指示。相比于现有技术,本发明具有下述优点本发明采用独特的串行总线读写控制方 法,实现多个外设与主控设备之间进行串行数据通信的自动控制,并借以主控设备中CPU 与RAM存储器之间高速率的数据读写优势,提高了多个外设与主控设备之间串行数据通信 的效率。


图1为实现本发明方法的串行总线连接示意图;图2为本发明方法的流程框图;图3为串行帧的帧结构以及帧同步的示意图。
具体实施例方式下面结合附图和实施例对本发明的技术方案进一步说明如下本发明提供一种自动访问的串行总线读写控制方法。本发明方法所采用的串行总 线连接示意图如图1所示,多个外设与主控设备之间通过不同的串行总线连接,实现多个 外设与主控设备之间的串行数据通信。在主控设备上,以串行控制主模块与串行总线连接, 主控设备的CPU或RAM存储器再通过并行读写接口与串行控制主模块进行串行总线读写操 作,实现数据通信;其中,串行控制主模块与CPU保持通信,获取CPU的工作状态(空闲或繁 忙),并完成对读写数据的帧结构封装和解释、数据校验、实时数据传输和读写功能;并行 读写接口将多路串行控制主模块读写的数据复用在CPU或RAM存储器的读写总线上,实现 串行控制主模块与CPU或RAM存储器之间的数据通信。在外设上,以串行控制从模块与主 控设备的串行总线连接,以传统的串行数据通信方式与主控设备进行数据通信;其中,串行 控制从模块完成读写数据的帧结构解释,以及对读写命令、地址信息和数据信息的解释、转 换工作;外设中的外围器件通过读写总线与串行控制从模块进行数据的读写操作。如图2所示,在主控设备中,由CPU对连接在主控设备上的多个外设分别编制地址 信息,以地址信息区分不同的外设;各外设以常规的串行数据通信方式与主控设备的串行 控制主模块进行串行数据通信。在本发明方法的读写控制下,主控设备中的串行控制主模 块与CPU之间的串行总线读写操作,可采用两种工作模式普通模式和缓存模式。串行控制 主模块先获取CPU的工作状态,确定CPU时处于空闲状态还是处于繁忙状态;当主控设备 主动访问一个外设或者外设一一依次访问主控设备时,主控设备的CPU能够依次处理读写 数据,此时串行控制主模块与CPU之间的串行总线读写操作即采用普通模式;当多个外设 同时访问主控设备时,主控设备的CPU已被其中一路外设所占用,其它外设无法直接访问 CPU,此时串行控制主模块与CPU之间的串行总线读写操作即采用缓存模式。普通模式的数 据读写操过程与现有技术中串行总线读写操作过程相似,即由主控设备的CPU与串行控制 主模块通过并行读写接口进行数据读写操作,直接通过串行控制主模块访问目标地址信息所对应的外设。当工作在缓存模式时,由于主控设备的CPU繁忙,串行控制主模块会将包含 地址信息的数据读写操作切换到主控设备内部RAM存储器上,将读写的数据信息连同外设 的地址信息分址地存储在RAM存储器中;在CPU空闲后,再由CPU对RAM存储器进行读写操 作,提取RAM存储器中存储的地址信息和数据信息,进行后续的数据信息识别和处理。串行控制主模块与CPU之间读写操作的数据采用串行帧结构传输,串行总线读 写操作的数据传输的串行帧的帧结构如图3所示。串行帧的帧结构中包括同步码(SYNC CODE)、控制码(CONTROL CODE)、地址码(ADDR)、数据码(DATA)、状态码(STATUS)、保留码 (RESERVED)和奇偶效验码(CRC)。其中同步码(SYNC CODE)作为同步指示码,用于完成串行 数据的帧头定位与同步;控制码(CONTROL CODE)用于传送读写控制信号和模式选择信号;模式选择包括 普通模式和缓存模式,普通模式即CPU可以直接通过串行总线访问目标设备;而缓存模式 即串行控制主模块与RAM存储器进行读写操作,不需要CPU参与。地址(ADDR)用于传送外设的地址信息;数据(DATA)用于传送与外设通信的有效数据;状态码(STATUS)用于指示数据信息传输状态;保留码(RESERVED)备用的数据字段,用于传送根据外设定义的数据信息,其字 节数量根据实际外设的情况定义;奇偶校验码(CRC)用于数据效验,并用于完成串行数据的帧尾定位。外设与主控设备通信的具体流程为外设的串行控制从模块与主控设备的串行控 制主模块之间以传统的串行通信方式进行数据读写操作;串行控制主模块先获取CPU的 工作状态,确定CPU时处于空闲状态还是处于繁忙状态,根据CPU的工作状态确定状态码 (STATUS)中的模式选择信号;然后,串行控制主模块再将外设传输的数据、外设相应的地 址信息以及确定CPU工作状态的状态码(STATUS)等成帧处理为串行帧结构,根据状态码 (STATUS)中模式选择信号确定的工作模式,与主控设备的CPU进行数据读写操作。从上述 通信流程可以看到,串行控制主模块通过与CPU的通信,实现了两者之间串行读写工作模 式的自动调整功能,提高了外设与主控设备的数据读写效率。利用特殊的串行帧结构,在与 外设进行串行数据通信的同时,还能够借助串行帧中的保留码(RESERVED)进行实时数据 传输。下面以SDH通信设备作为外设为例,由SDH通信设备与主控设备的通信过程,进一 步说明本发明的数据读写过程及相应的效果。实施例首先根据SDH通信设备的通信特点,确定主控设备与SDH通信设备之间读写操作 所采用的串行帧结构同步码(SYNC CODE)占用3个字节;传送2个连续的固定数值与1个可变数值 (该数值作为主备总线间帧头偏移的调整);串行总线根据SDH系统帧脉冲和收到的2个固 定数值完成串行总线的帧头定位。控制码(CONTROL CODE)占用1个字节;传送读写控制信号和模式选择信号(用 于手动和自动模式切换)。地址(ADDR)占用2个字节;传送16位地址信息。
数据(DATA)占用2个字节;传送16位有效数据。状态码(STATUS)占用1个字节;指示“操作成功”、“等待”等状态信息。
保留码(RESERVED):根据实际外设的情况定义。奇偶校验码(CRC)占用1个字节;使用CRC-16校验。利用本发明的串行总线读写控制方法,既可以支持对特定外设的数据读写,也支 持对多个外设的大量数据的自动读写,通过串行控制主模块的工作模式调整功能,自动切 换控制串行控制主模块与主控设备CPU的串行总线读写工作模式。主控设备与多个SDH通信设备进行串行数据通信,将对多个SDH通信设备编制不 同的地址信息。当主控设备主动访问一个SDH通信设备或者多个SDH通信设备一一依次访 问主控设备时,每次启动串行数据通信时主控设备的CPU都是处于空闲状态的,因此主控 设备的CPU与串行控制主模块的串行总线读写操作采用普通模式,即主控设备的CPU与串 行控制主模块通过并行读写接口进行数据读写操作,直接通过串行控制主模块依次处理各 个SDH通信设备的读写数据。当多个SDH通信设备同时访问主控设备时,主控设备的CPU被 其中一路SDH通信设备占用后,后续的串行数据通信启动时,CPU处于繁忙状态,以此不能 够直接与CPU建立串行数据通信链路,此时主控设备的CPU与串行控制主模块的串行总线 读写操作则采用缓存模式,即主控设备的串行控制主模块将串行总线读写操作切换至主控 设备内部的RAM存储器上,将不同SDH通信设备读写的数据信息连同SDH通信设备的地址 信息一起,按地址信息的不同分别存储在RAM存储器的不同区域;当CPU处理完在先的串行 数据通信,恢复空闲状态后,CPU再直接对RAM存储器进行读取操作,一次性提取预先存储 在RAM中的全部数据,之后再根据地址信息识别不同SDH通信设备读写的数据信息,并进行 后续的处理。采用这样的串行总线读写控制方法,SDH通信设备与主控设备之间的串行数据 通信无需因主控设备CPU的繁忙而等待,而是让主控设备与多个SDH通信设备直接建立多 路并行的串行数据通信链路,只是现将不能直接与CPU进行读写操作的数据缓存入RAM存 储器中,再由CPU向RAM存储器提取数据。通过RAM存储器的缓存处理,使得多路SDH通信 设备能够与主控设备进行并行的串行数据传输,并且由于CPU与RAM存储器之间的数据读 写速度远大于SDH通信设备与CPU之间的串行数据通信速度,这些数据不会在RAM存储器 中长时间滞留,因此在总体上节省了数据传输时间,提高了多个SDH通信设备与主控设备 之间串行数据通信的效率。串行总线读写数据的同步,主要是根据帧脉冲信号(Framer Pulse)和同步码 (SYNCC0DE)确定帧头位置,而后从串行帧的控制码(CONTROL CODE)中提取相应的控制信 号,再根据随后接收到的地址数据信息,完成信息传递和相应的读写操作,并返回相应的状 态码(STATUS)信息。以SDH通信设备的外设为例;如图3所示,根据SDH通信设备的特点, 使用SDH系统时钟(Clock)和SDH帧脉冲信号(Framer Pulse)作为系统同步信号,在串行 总线中则SDH系统时钟作为收发时钟,而SDH帧脉冲信号作为串行数据的同步指示,而在两 个脉冲信号间则使用SYNC CODE作为同步指示。由于在两个帧脉冲信号之间的串行帧格式 位置是固定不变的,因此不必担心SYNC CODE和DATA出现冲突。由于SDH设备的同步性特 点,可以通过串行总线传输SDH实时数据(如E1/F1字节,64KBps数据信息等),这些字节 相对于帧脉冲信号(Framer Pulse)的位置固定,因此在串行总线中可以使用特定的字节 (如保留码)进行传输,这种传输方式不会对串行总线的带宽有所影响;同时,在实际应用中,两个帧脉冲信号(Framer Pulse)间传输的串行帧由于是多次重复发送,因此也不会对 读写效率产生影响。从而,在与SDH通信设备进行串行数据通信的同时,还实现了 SDH实时 数据的传输,进一步的提高了通信效率。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较 佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技 术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本 发明的权利要求范围当中。
权利要求
一种自动访问的串行总线读写控制方法,用于主控设备与多个外设之间的串行数据通信;所述主控设备的串行控制主模块与外设的串行控制从模块通过串行总线连接,并以传统的串行数据通信方式进行通信;主控设备的串行控制主模块分别与主控设备的CPU和RAM存储器通过并行读写接口连接,完成串行控制主模块与CPU之间的串行总线读写;其特征在于串行控制主模块与CPU之间的串行总线读写采用如下步骤进行控制a)CPU对外设编制地址信息,以地址信息区分不同的外设;b)串行控制主模块获取CPU的工作状态,确定CPU时处于空闲状态还是处于繁忙状态;当CPU处于空闲状态时执行步骤c),当CPU处于繁忙状态时执行步骤d);c)由主控设备的CPU与串行控制主模块进行数据读写操作,直接通过串行控制主模块访问目标地址信息所对应的外设;d)串行控制主模块将包含地址信息的数据读写操作切换到主控设备内部的RAM存储器上,将读写的数据信息连同外设的地址信息分址地存储在RAM存储器中;在CPU空闲后,再由CPU对RAM存储器进行读写操作,提取RAM存储器中存储的地址信息和数据信息。
2.根据权利要求1所述的自动访问的串行总线读写控制方法,其特征在于所述串行 控制主模块与CPU之间的串行总线读写的数据采用串行帧结构进行传输,所述串行帧包括 同步码、控制码、地址码、数据码、状态码和奇偶效验码;其中,同步码用于完成串行数据的帧头定位与同步;控制码用于传送读写控制信号和模式选择信号;地址码用于传送外设的地址信息;数据码用于传送与外设通信的有效数据;状态码用于指示信息传输状态;奇偶校验码用于数据效验,并作为串行帧的帧尾指示。
3.根据权利要求2所述的自动访问的串行总线读写控制方法,其特征在于所述数据 帧还包括保留码,所述保留码用于传送根据外设定义的数据信息。
全文摘要
本发明提供一种自动访问的串行总线读写控制方法,用于主控设备与多个外设之间的串行数据通信。采用本方法,多个外设与主控设备之间的串行数据通信无需因主控设备CPU的繁忙而等待,而是通过RAM存储器的缓存处理,使得多路外设能够与主控设备进行并行的串行数据传输,并且由于CPU与RAM存储器之间的数据读写速度远大于外设与CPU之间的串行数据通信速度,这些数据不会在RAM存储器中长时间滞留,因此在总体上节省了数据传输时间,提高了多个外设与主控设备之间串行数据通信的效率。
文档编号G06F13/42GK101866328SQ201010138100
公开日2010年10月20日 申请日期2010年4月1日 优先权日2010年4月1日
发明者张峰, 王伟, 龚生建 申请人:和记奥普泰通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1