專利名稱:一種采用串行通信接口的同步時分多路復用總線通信方法
技術領域:
本發明涉及的是一種總線通信方法,具體涉及的是一種采用串行通信接口的同步時分多路復用總線通信方法。
背景技術:
在工業控制中,自動裝置總會使用大量的輸入和輸出接口,用來采集各種傳感器的信號、開關量信號,以及控制繼電器的出口。在形式上大多是采用主控板和輸入、輸出板實現。早些時候,輸入、輸出板的每一個通道都是與主控板的MCU引腳直接相連,這就需要主控MCU的引腳必須滿足量的需求,同時不同的應用場合需要的輸入、輸出的個數也不一樣,造成主控板的通用性下降。目前,自動裝置已經普遍采用總線來做為主控板與輸入、輸出板之間通信的橋梁。 在輸入、輸出板上具有MCU用來處理各種輸入、輸出信號,并與主控板的MCU進行通信,因而內部總線的結構決定了自動裝置的時效性與穩定性。然而普通的串行或并行通信方式并不能滿足強干擾下的實時通信需求,因此,各廠家開始開發各自裝置的總線來滿足強干擾下的實時通信需求。但由于目前的裝置內部總線種類繁多,如有并行總線,也有串行總線,有通過FPGA實現的,也又通過CPLD實現的,以及有通過其他MCU實現的;有使用SPI接口的,有使用SCI接口的,也有使用CAN接口的等繁多復雜。對于這種主控板與輸入、輸出板之間通信報文不長且長度固定的場合,很難開發出結構簡單合乎要求的總線,難以滿足實時通信的要求。為滿足上述要求,目前很多也都使用了 TDM (時分多路復用)的總線技術來開發總線,如中國專利申請號200420025265. 9,公開號為CN2710264公開的《時分多路實時通訊總線》,其是采用SPI的時分多路實時通訊總線,它是由主機、從機,以及SPI通訊總線中的MOSI數據線、MISO數據線、SCK數據時鐘信號線和SS從機SPI通訊片選控制線構成,其特征在于包括一個判斷模塊,所述的主機的MOSI數據線、MISO數據線以及SCK數據時鐘信號線分別與各從機的MOSI數據線、MISO數據線以及SCK時鐘信號線相連接,其中主機的SCK時鐘信號線在各從機的SCK時鐘信號線相連接的同時還額外引入到各從機所屬的判斷模塊,而各判斷模塊的輸出控制線與各對應從機的SPI通訊片選控制線SS相連。該通訊總線利用每個信號在時間上的交叉,就可以在一條物理信道上傳輸多個數字信號,從而使自動裝置的通用性得以擴大,特別是在需要大量開關量輸入輸出的應用場合。而這種通訊總線雖然達到了實時通訊的目的,但其由于硬件電路以及線路復雜,總線的實現對MCU的硬件要求較高,其實現方法復雜,大大增加了使用成本,通信實時性難以可控,通信實時性受到硬件電路的影響,同時影響通信的可靠性和總線的速度。因此,基于上述,無論是哪種內部總線方式,要么是采用了額外的高速邏輯芯片來提高總線的速度和可靠性,要么是采用了多根數據線或者額外的電路來對總線進行控制以保證速度和可靠性,或者是在速率和可靠性上做一個取舍,其均對MCU的硬件要求較高,硬件電路復雜,受到硬件設備影響度大,使其通信的可靠性和總線的速度受到了局限性,難以實現高可靠性同時又能滿足高速度的實時性要求。
發明內容
針對現有技術上存在的不足,本發明目的是在于提供一種在絕大多數MCU都具備的基礎上,僅利用兩根物理連線實現高可靠的差分連接,同時又能滿足高速度的實時性要求的同步時分多路復用總線通信方法,解決了裝置內部模塊的總線通信問題,實現通信實時性可控,減少硬件電路復雜程度,增強通用性和可靠性。為了實現上述目的,本發明是通過如下的技術方案來實現—種采用串行通信接口的同步時分多路復用總線通信方法,其包括主機和多個從機,所述主機和從機均包括SCI (Serial Communication Interface,串行通信接口)接口和具有定時器的微控制單元(MCU),所述主機和從機的收、發數據線均分別與總線相連接,其特征在于,其總線通信方法為當主機每發送一次各從機對應需要的下行數據報文時,各 個從機通過SCI接口接收數據,等待一段時間間隔后,從機開始發送上行數據報文,每當上 一從機發送上行數據報文后,等待相同的時間間隔,下一從機開始發送上行數據報文,依次類推實現總線通信方法;所述從機發送上行數據報文方法從機接收數據后,判斷是否為主機數據;當數據判斷為不是主機數據時,對數據不做處理,從機繼續接收數據;當數據為主機數據時,啟動定時器,再對接收的主機數據進行數據校驗,如果校驗不通過則關閉定時器,繼續接收總線數據;如果校驗通過,從機開始進行數據處理,等待到定時器中斷發生時,從機通過SCI發送數據報文。為了提高通信的可靠性,減少誤碼率,在所述總線物理上通過單端差分信號轉換芯片將總線轉換成差分線,所述主機和從機通過差分線與總線相連接。作為優選,所述等待一段時間間隔和等待相同的時間間隔均為一個Idle的時間間隔。作為優選,所述總線采用的是半雙工的通信模式。本發明通過上述方法,其總線物理構成簡單,僅僅使用兩根差分線,即可實現高可靠的實時總線通信,同時又能滿足高速度的實時性要求,在外部干擾較小的情況下甚至可以采用單根信號線的方式實現,總線的實現對MCU的硬件要求較低,有SCI接口和定時器的MCU都可以實現;不同從機的可以根據實際的情況選擇不同的波特率與等待時間,完成實時性要求,采用同步時分多路復用,主機按照時間間隔來填充數據內存,處理從機的總線數據程序簡單;主機發送報文是從機發送報文的節拍,每次主機下傳報文,都是對從機的對時,保證從機發送節拍的準確性,并且可以根據主機的任務量來選擇不定長的周期,而不會造成從機的失步,解決了裝置內部模塊的總線通信問題,實現通信實時性可控,減少硬件電路復雜程度,增強通用性和可靠性。
下面結合附圖和具體實施方式
來詳細說明本發明;圖I為本實施例的系統圖;圖2為本實施例的本實施例的帶地址位的報文幀格式示意圖3為本實施例的一次通訊流程示意圖;圖4為本實施的從機發送上行數據報文的流程示意圖。
具體實施例方式為使本發明實現的技術手段、創作特征、達成目的與功效易于明白了解,下面結合具體實施方式
,進一步闡述本發明。參見圖1,本實施例中是提供一種解決了裝置內部模塊的總線通信問題的采用串行通信接口的同步時分多路復用總線通信方法,總線采用半雙工的通信模式,即可實現高可靠的實時總線通信,同時又能滿足高速度的實時性要求。本實施例的主機和多個從機的收、發數據線都分別與總線相連接,在任意時刻僅有一個設備占用總線資源,發送數據,其他設備接收數據。為了提高通信的可靠性,減少誤碼率,總線物理上通過單端差分信號轉換 芯片將總線轉換成差分線,即收、發數據線采用的是差分線,主機和多個從機差分線通過與總線相連接。圖2為本實施例的帶地址位的報文幀格式示意圖,其中,Start位開始位,I位數據位,I位地址位,I位停止位。本實例的通信采用帶地址位的報文幀,其實現方法如下通信回路分為上行報文和下行報文,其中下行報文,地址位為1,由主機發往從機。采用一主多從、主發從收的方式,各從機在收到的報文中讀取自己需要的信息。下行報文的頻率作為從機的工作節拍。上行報文,地址位為0,由從機發往主機。采用時分多路復用的方式。當從機收到地址位為I的報文時,按照自己的地址號延時一定時間后再發送上傳數據,從而實現多路復用。當從機收到地址為O的報文時,不做處理。本實施例中的主機發送下行報文時長T主;每個從機發送上行報文時長Τ從;兩次發送間的等待時間Idle。參見圖3,本實施例的采用串行通信接口的同步時分多路復用總線通信方法,其方法為主機發送下行數據報文,I號從機通過串行通信接口即SCI接口接收數據后,等待Idle的時間間隔,I號從機開始發送上行數據報文,等待Idle的時間間隔,2號從機開始發送上行數據報文,等待Idle的時間間隔,以此類推,等待Idle的時間間隔,N號從機開始發送上行數據報文,等待Idle的時間間隔,主機再次發送下行數據報文,從而完成數據通訊。從機開放SCI開始接收數據報文,判別地址位是否是主機數據。如果是其他從機數據,不做處理。如果是主機數據,啟動定時器(定時時間長度由Ι(11θ、Τλ和η來確定)。再對接收的主機數據進行數據校驗。如果校驗不通過則關閉定時器,繼續接收總線數據。如果校驗通過,從機開始進行數據處理。等待到定時器中斷發生時,從機通過SCI發送數據報文。報文發送時間計算第N個從機發送時刻tn tn=Idle+ (Idle+T 從)X (η_1) η 為地址號(I......N)一次通信周期T T=T 主+Idle+ (Idle+T 從)Xn η 為地址號(I......N)根據系統的實際需求,確定一次通信周期T和系統中最大從機數目,選擇恰當的波特率和等待時間即可完成規定時間內的數據通訊。例如現在系統通信周期500us,最大子機數目10個,設置波特率3. 75mbps,主機下行報文16個字節,從機上行報文10個字節,則等待時間 Idle=[500-(16Xll/3. 75)_10X (10X11/3. 75)1/(10+1) ^ 14. 5us。設置從機等待時間則可以實現周期為500us的實時通信。綜上所述,本發明的總線物理構成簡單,僅僅使用兩根差分線,即可實現高可靠的實時總線通信,在外部干擾較小的情況下甚至可以采用單根信號線的方式實現。總線的實現對MCU的硬件要求較低,有SCI接口和定時器的MCU都可以實現。不同的從機可以根據實際的情況選擇不同的波特率與等待時間,完成實時性要求。采用同步時分多路復用,主機按照時間間隔來填充數據內存,處理從機的總線數據程序簡單。主機發送報文是從機發送報文的節拍,每次主機下傳報文,都是對從機的對時,保證從機發送節拍的準確性。可以根據主機的任務量來選擇不定長的周期,而不會造成從機的失步。 本發明在內部總線就是在絕大多數MCU都具備的基礎上,僅僅利用兩根物理連線實現高可靠的差分連接,同時又能滿足高速度的實時性要求。以上顯示和描述了本發明的基本原理和主要特征和本發明的優點。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發明的原理,在不脫離本發明精神和范圍的前提下,本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明范圍內。本發明要求保護范圍由所附的權利要求書及其等效物界定。
權利要求
1.一種采用串行通信接口的同步時分多路復用總線通信方法,其包括主機和多個從機,所述主機和從機均包括串行通信接口和具有定時器的微控制單元,所述主機和從機的收、發數據線均分別與總線相連接,其特征在于,其總線通信方法為當主機每發送一次各從機對應需要的下行數據報文時,各個從機通過SCI接口接收數據,等待一段時間間隔后,從機開始發送上行數據報文,每當上一從機發送上行數據報文后,等待相同的時間間隔,下一從機開始發送上行數據報文,依次類推實現總線通信方法。
2.根據權利要求I所述的一種采用串行通信接口的同步時分多路復用總線通信方法,其特征在于,所述從機發送上行數據報文的方法為從機接收數據后,判斷是否為主機數據;當數據判斷為不是主機數據時,對數據不做處理,從機繼續接收數據;當數據為主機數據時,啟動定時器,再對接收的主機數據進行數據校驗,如果校驗不通過則關閉定時器,繼續接收總線數據;如果校驗通過,從機開始進行數據處理,等待到定時器時間到達,從機通過SCI發送數據報文。
3.根據權利要求I或2所述的一種采用串行通信接口的同步時分多路復用總線通信方法,其特征在于,在所述總線物理上通過單端差分信號轉換芯片將總線轉換成差分線,所述主機和從機通過差分線與總線相連接。
4.根據權利要求I或2所述的一種采用串行通信接口的同步時分多路復用總線通信方法,其特征在于,所述等待一段時間間隔和等待相同的時間間隔均為一個Idle的時間間隔。
5.根據權利要求I或2所述的一種采用串行通信接口的同步時分多路復用總線通信方法,其特征在于,所述總線采用的是半雙工的通信模式。
全文摘要
本發明公開的是一種采用串行通信接口的同步時分多路復用總線通信方法,主機和從機的收、發數據線均分別與總線相連接,其方法為當主機每發送一次各從機對應需要的下行數據報文時,各個從機通過SCI接口接收數據,等待一段時間間隔后,從機開始發送上行數據報文,每當上一從機發送上行數據報文后,等待相同的時間間隔,下一從機開始發送上行數據報文,依次類推實現總線通信方法。在絕大多數MCU都具備的基礎上,僅利用兩根物理連線實現高可靠的差分連接,同時又能滿足高速度的實時性要求,解決了裝置內部模塊的總線通信問題,實現通信實時性可控,減少硬件電路復雜程度,增強通用性和可靠性。
文檔編號H04J3/16GK102868584SQ20121038280
公開日2013年1月9日 申請日期2012年10月11日 優先權日2012年10月11日
發明者徐秦, 孫永先, 吳哲, 陳榮柱, 戴瑞海, 劉曦, 奚洪磊, 楊振 申請人:江蘇西電南自智能電力設備有限公司, 溫州電力局