專利名稱:一種自動訪問的串行總線讀寫控制方法
技術領域:
本發明涉及計算機通信技術領域,特別涉及一種自動訪問的串行總線讀寫控制方法。
背景技術:
中央處理單元(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日
發明者張峰, 王偉, 龔生建 申請人:和記奧普泰通信技術有限公司