本發(fā)明涉及一種時序控制方法,尤其是涉及應(yīng)用于智能冗余總線的時序控制方法。
背景技術(shù):
傳統(tǒng)的控制系統(tǒng)主要通過單總線傳輸,往往因為單一總線的故障而影響整個系統(tǒng)的正常工作。這在某些對穩(wěn)定性和可靠性有特殊要求的應(yīng)用場合是不可接受的。
為了克服單一總線系統(tǒng)所固有的可靠性低的缺點,提出了一種智能冗余總線。該方案在現(xiàn)有的I2C單一總線的基礎(chǔ)上,對其通信協(xié)議、傳輸鏈路、接口節(jié)點以及信號隔離等方面的冗余技術(shù)進(jìn)行全面的分析和技術(shù)改造,使其可靠性和冗余性得到很大的提高。
冗余總線包含兩套I2C串行總線接口,通過冗余設(shè)計以及冗余協(xié)議,達(dá)到高可靠性的目的。
智能冗余總線屬于同步總線,通過嚴(yán)格的時序保證,保證傳輸?shù)姆€(wěn)定可靠。現(xiàn)有技術(shù)中缺乏這樣的方案。
技術(shù)實現(xiàn)要素:
為了解決上述問題,本發(fā)明提出了一種應(yīng)用于智能冗余總線的時序控制方法,其中,智能冗余總線的整體幀結(jié)構(gòu)包括了:幀號為0的幀,為系統(tǒng)同步幀,所有從站將根據(jù)該系統(tǒng)同步幀,獲取定時信息,與主站進(jìn)行鏈路交互、狀態(tài)檢查,通過該系統(tǒng)同步幀,確知從站的工作狀態(tài),線路通斷情況,并據(jù)此給出交互的機(jī)制;幀號從1到99的幀,為普通數(shù)據(jù)幀,每幀持續(xù)時間為1毫秒(ms),總計125個字節(jié)(Byte);所述同步幀包括:該幀0~3字節(jié)(Byte)組成同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;該幀的4、5字節(jié)(Byte),由從站1向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;該幀的6與7字節(jié)(Byte)、8與9字節(jié)(Byte)、10與11字節(jié)(Byte)、12與13字節(jié)(Byte)、14與15字節(jié)(Byte)、16與17字節(jié)(Byte)分別由從站2、3、4、5、6、7發(fā)送;該幀的第18字節(jié)(Byte)將設(shè)定從站1的傳輸協(xié)議方式,從站可以從接收的數(shù)據(jù),確認(rèn)接收方式;同時,主站在19~24字節(jié)(Byte)依次設(shè)置從站2~7的確認(rèn)接收方式;該幀的第19字節(jié)(Byte),將再次傳輸一個字節(jié)(Byte)的同步碼序列,從而讓從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;該幀的26~27字節(jié)(Byte),將接收從站的中斷響應(yīng),包括對主站設(shè)定接收出錯,各種從站異常,均可在規(guī)定的時刻進(jìn)行反饋;該幀的28~30字節(jié)(Byte),將向各個從站發(fā)送命令控制塊;步驟1:主站通過同步幀的第0~3字節(jié)(Byte)向所有從站發(fā)送同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;步驟2:第一從站,通過同步幀的第4、5字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;步驟3:主站,通過同步幀第18字節(jié)(Byte),設(shè)定第一從站的傳輸協(xié)議方式;步驟4:主站,通過同步幀第19字節(jié)(Byte),再次傳輸一個字節(jié)(Byte)的同步碼序列給第一從站,從而讓第一從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;步驟5:主站和第一從站之間根據(jù)步驟1-4的設(shè)定,通過普通數(shù)據(jù)幀,傳輸數(shù)據(jù)。
優(yōu)選的,該方法還包括:步驟6:除了第一從站以外的其它從站,通過該同步幀的第6-17字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)所述其它從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法。
優(yōu)選的,該方法還包括:步驟7:主站在該同步幀的第19~24字節(jié)(Byte)依次設(shè)置所述的其它從站的確認(rèn)接收方式。
本發(fā)明還提出了一種應(yīng)用于智能冗余總線的時序控制系統(tǒng),其中,智能冗余總線的整體幀結(jié)構(gòu)包括了:幀號為0的幀,為系統(tǒng)同步幀,所有從站將根據(jù)該系統(tǒng)同步幀,獲取定時信息,與主站進(jìn)行鏈路交互、狀態(tài)檢查,通過該系統(tǒng)同步幀,確知從站的工作狀態(tài),線路通斷情況,并據(jù)此給出交互的機(jī)制;幀號從1到99的幀,為普通數(shù)據(jù)幀,每幀持續(xù)時間為1毫秒(ms),總計125個字節(jié)(Byte);所述同步幀包括:該幀0~3字節(jié)(Byte)組成同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;該幀的4、5字節(jié)(Byte),由從站1向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;該幀的6與7字節(jié)(Byte)、8與9字節(jié)(Byte)、10與11字節(jié)(Byte)、12與13字節(jié)(Byte)、14與15字節(jié)(Byte)、16與17字節(jié)(Byte)分別由從站2、3、4、5、6、7發(fā)送;該幀的第18字節(jié)(Byte)將設(shè)定從站1的傳輸協(xié)議方式,從站可以從接收的數(shù)據(jù),確認(rèn)接收方式;同時,主站在19~24字節(jié)(Byte)依次設(shè)置從站2~7的確認(rèn)接收方式;該幀的第19字節(jié)(Byte),將再次傳輸一個字節(jié)(Byte)的同步碼序列,從而讓從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;該幀的26~27字節(jié)(Byte),將接收從站的中斷響應(yīng),包括對主站設(shè)定接收出錯,各種從站異常,均可在規(guī)定的時刻進(jìn)行反饋;該幀的28~30字節(jié)(Byte),將向各個從站發(fā)送命令控制塊;裝置1,用于主站通過同步幀的第0~3字節(jié)(Byte)向所有從站發(fā)送同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;裝置2,用于第一從站,通過同步幀的第4、5字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;裝置3,用于主站,通過同步幀第18字節(jié)(Byte),設(shè)定第一從站的傳輸協(xié)議方式;裝置4,用于主站,通過同步幀第19字節(jié)(Byte),再次傳輸一個字節(jié)(Byte)的同步碼序列給第一從站,從而讓第一從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;裝置5,用于主站和第一從站之間根據(jù)步驟1-4的設(shè)定,通過普通數(shù)據(jù)幀,傳輸數(shù)據(jù)。
優(yōu)選的,該系統(tǒng),包括:裝置6,用于除了第一從站以外的其它從站,通過該同步幀的第6-17字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)所述其它從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法。
優(yōu)選的,該系統(tǒng),包括:裝置7,用于主站在該同步幀的第19~24字節(jié)(Byte)依次設(shè)置所述的其它從站的確認(rèn)接收方式。
本發(fā)明還提出了一種計算機(jī)程序,用于執(zhí)行如權(quán)利要求1-3所述的任意一個方法。
本發(fā)明還提出了一種計算機(jī)系統(tǒng),包括中央處理器,和存儲器,中央處理器執(zhí)行存儲器上的指令來實現(xiàn)如權(quán)利要求1-3所述的任意一個方法。
通過本發(fā)明為智能冗余總線設(shè)置的時序方法和系統(tǒng),能很好的實現(xiàn)主站和從站之間的協(xié)同工作。
附圖描述
圖1是主站控制模式圖;
圖2是主站數(shù)據(jù)模式圖;
圖3是從站數(shù)據(jù)傳輸模式圖;
圖4是整體幀結(jié)構(gòu)圖;
圖5是同步幀結(jié)構(gòu)圖;
圖6是普通數(shù)據(jù)幀結(jié)構(gòu)圖;
圖7和圖8是普通控制幀結(jié)構(gòu)圖;
圖9是專用控制幀結(jié)構(gòu)圖;
圖10是專用數(shù)據(jù)幀結(jié)構(gòu)圖;
圖11是專用控制與數(shù)據(jù)混合幀
圖12是中斷幀結(jié)構(gòu)圖;
圖13和圖14是傳輸幀BIT結(jié)構(gòu)圖;
圖15是從站點心跳檢測字結(jié)構(gòu)圖;
圖16是從站狀態(tài)指示字結(jié)構(gòu)圖;
圖17是專用信道的主從響應(yīng)與應(yīng)答格式結(jié)構(gòu)圖;
圖18是根據(jù)本發(fā)明實施例的一種應(yīng)用于智能冗余總線的時序控制方法的流程圖;
圖19是根據(jù)本發(fā)明實施例的一種應(yīng)用于智能冗余總線的時序控制系統(tǒng)的框圖。
具體實施例
冗余I2C協(xié)議總線信號類型包括兩類:
(1)SCL信號,提供控制時鐘功能,在冗余總線中,通常由主設(shè)備提供驅(qū)動,從站接收該信號;僅當(dāng)從站需要進(jìn)行狀態(tài)反饋或者請求中斷時,驅(qū)動該信號。該信號包括首要信號與備份信號,分別定義為SCL_P/SCL_S。
(2)SDA信號,提供數(shù)據(jù)傳輸功能,在冗余總線中為雙向信號,支持?jǐn)?shù)據(jù)在主設(shè)備與從站間雙向傳輸。該信號包括首要信號與備份信號,分別定義為SDA_P/SDA_S。
總線信號工作模式:
智能冗余總線支持2種工作模式:1、冗余備份傳輸模式。2、單信號傳輸模式。
冗余備份傳輸模式:該模式下首要信號與備份信號同時工作。首要信號與備份信號傳輸相同的信號。當(dāng)兩者傳輸信號內(nèi)容完全一致時,認(rèn)為信號傳輸正常,保證可靠性,當(dāng)信號傳輸出現(xiàn)錯誤時,采用大數(shù)一致判決方法,決定傳輸內(nèi)容。
單信號傳輸模式:該模式下,只有首要信號或者備份信號工作。由主站決定那個信號進(jìn)行工作。
在總線上傳輸?shù)臄?shù)據(jù)字,總是每個字的最高有效位在先,按數(shù)值遞減的次序跟著較低有效位。確定一個數(shù)值所需位的個數(shù)應(yīng)符合所要求的分辨率或精度。如果在總線上發(fā)送的信息其精度或分辨率超過16位,也應(yīng)先發(fā)送最高有效位。超過16位的那些位再按數(shù)據(jù)遞減的次序組成第二個字發(fā)送。允許將多個參數(shù)信息的位合并成一個數(shù)據(jù)字。
智能總線的基本傳輸速率為1Mbit/s,等效于1us傳輸1個bit。每次基本傳輸長度必須是8位長度(放到SDA上的每個字節(jié))的整數(shù)倍。用來發(fā)送編碼數(shù)據(jù)用來發(fā)送編碼數(shù)據(jù)的各個內(nèi)部時鐘的長期穩(wěn)定性為±0.1%(即±1000Hz)。短期穩(wěn)定性(即在1.0s間隔內(nèi)的穩(wěn)定性)優(yōu)于0.01%(即100Hz絕對值)。
智能總線的數(shù)據(jù)和地址字節(jié)的MSB位總是被最先發(fā)送的??偩€上傳輸?shù)臄?shù)字?jǐn)?shù)據(jù)符合標(biāo)準(zhǔn)定義的消息和字的格式。字中任何不適用的位按邏輯0傳輸。
當(dāng)主站傳輸命令時,數(shù)據(jù)與時鐘(SCL與SDA)同時變化。而進(jìn)行數(shù)據(jù)傳輸時,數(shù)據(jù)相對時鐘提前半個bit發(fā)生變化(即SDA穩(wěn)定時后,SCL下降沿發(fā)生變化)。具體時序方式如圖1所示。
這種模式下SCL與SDA,同時變化(上升沿與下降沿對齊),防止由于冗余總線線路出現(xiàn)故障后,總線不能接收到相關(guān)狀態(tài)線,或者相關(guān)狀態(tài)線附著在某一狀態(tài)引入的問題。
主站數(shù)據(jù)模式如圖2所示。
而在數(shù)據(jù)傳輸模式下,在SCL上升沿,SDA數(shù)據(jù)穩(wěn)定給出。從站的傳輸模式如圖3所示。
從站在進(jìn)行數(shù)據(jù)傳輸時,僅提供SDA數(shù)據(jù)驅(qū)動,在主站讀取從站數(shù)據(jù)與狀態(tài)時,從站與主站驅(qū)動SCL之間的關(guān)系如上圖所示。當(dāng)從站進(jìn)行狀態(tài)反饋以及終端驅(qū)動時,將同時驅(qū)動SCL與SDA數(shù)據(jù)線,兩者傳輸相同數(shù)據(jù)信息。
智能冗余總線屬于同步總線,通過嚴(yán)格的時序保證,保證傳輸?shù)姆€(wěn)定可靠。智能總線最小基本定時單位為1us,即1us傳輸1bit,每1000個bit傳輸時間組成一個基本幀,持續(xù)時間為1ms。每100個基本幀周期,構(gòu)成一個復(fù)幀周期,累計持續(xù)傳輸時間100ms,幀編號從0到99依次計數(shù)。智能總線的整體幀結(jié)構(gòu)圖如圖4所示:
幀號為0的幀,為系統(tǒng)同步幀,所有從站將根據(jù)該幀,獲取定時信息,與主站進(jìn)行鏈路交互、狀態(tài)檢查,通過該幀,能夠確知從站的工作狀態(tài),線路通斷情況,并據(jù)此給出交互的機(jī)制。
幀號從1到99的幀,則為普通數(shù)據(jù)幀,每幀持續(xù)時間為1ms,總計125個Byte傳輸。該幀的傳輸內(nèi)容支持多個從站共享傳輸或單獨從站共享方式兩種情況。
另外,每幀支持從機(jī)發(fā)送中斷請求,即每1ms,從機(jī)具備一次中斷上報能力。主站除正常按幀格式發(fā)送數(shù)據(jù)外,存在中斷數(shù)據(jù)發(fā)送的情況。這種情況下,主站將打斷正常傳輸,發(fā)送中斷信息頭,并發(fā)送對應(yīng)的命令控制幀格式,各個從機(jī)需要實時判斷中斷情況,接收對應(yīng)控制命令。
表2-2幀類別說明表
同步幀的格式如圖5所示:
該幀0~3Byte組成同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致。
該幀的4、5Byte,由從站1向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從機(jī)的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法。此時,從站將驅(qū)動SCL與SDA數(shù)據(jù),SCL與SDA傳輸?shù)膬?nèi)容完全一致。
該幀的6與7Byte、8與9Byte、10與11Byte、12與13Byte、14與15Byte、16與17Byte分別由從站2、3、4、5、6、7發(fā)送。主站檢測信號狀態(tài),確認(rèn)如何設(shè)定傳輸模式。
該幀的第18Byte將設(shè)定從站1的傳輸協(xié)議方式,從站可以從接收的數(shù)據(jù),確認(rèn)接收方式。同時,主站在19~24Byte依次設(shè)置從站2~7的確認(rèn)接收方式。
該幀的第19Byte,將再次傳輸一個Byte的同步碼序列,從而讓從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻。
該幀的26~27Byte,將接收從機(jī)的中斷響應(yīng),包括對主站設(shè)定接收出錯,各種從站異常,均可在規(guī)定的時刻進(jìn)行反饋。
該幀的28~30Byte,將向各個從機(jī)發(fā)送命令控制塊。
該幀從第25Byte開始與普通幀設(shè)置完全一致。
普通數(shù)據(jù)幀包含:(1)普通數(shù)據(jù)幀;(2)普通控制幀;(3)專用數(shù)據(jù)幀;(4)專用控制幀;(5)專用數(shù)據(jù)控制混合幀。具體設(shè)計如下:
普通數(shù)據(jù)幀
普通數(shù)據(jù)幀按照如下格式能夠在一個幀內(nèi),對每個從站進(jìn)行數(shù)據(jù)傳輸,具體格式如圖6所示:
該幀通過對起始Byte(第0個字節(jié))進(jìn)行識別。當(dāng)確認(rèn)本幀為普通數(shù)據(jù)幀后,第1Byte與第2Byte將接收各個從站的中斷響應(yīng)。
主站將在第3Byte進(jìn)行狀態(tài)指示,每個Bit位表征一個從站是否存在數(shù)據(jù)傳輸狀態(tài),Bit0保留,缺省設(shè)為0(目前擬設(shè)定為全站廣播傳輸數(shù)據(jù),各個從站均需接收)
如果廣播Bit設(shè)置為1,則第4Byte將設(shè)置廣播長度與廣播方向,最大長度可以設(shè)置為127Byte(但實際不應(yīng)該大于當(dāng)前可用剩余的空閑Bit數(shù)目)。
如果第3Byte的Bit1設(shè)置為1,則第5Byte將指示從站1的傳輸長度與傳輸方向,如果該Bit1設(shè)置為0,則依次順延,查詢Bit2是否為1,此時如果為1,則表明從站2有數(shù)據(jù)傳輸,將在廣播長度指示與從站1指示完畢后,占據(jù)其后的Byte進(jìn)行表示。例如,第3Byte的Bit0、1、2均為1,則從站2,將在第6Byte指示其長度與方向;如果Bit0、1均為0,而Bit2為1,則從站2,將在第4Byte指示其傳輸長度與方向。
廣播長度的指示位置:第4Byte,如果Bit0指示為1,否則沒有廣播。
每個從站數(shù)據(jù)的指示位置:
4+sum(Bit[i]),其中i<當(dāng)前從站編號。
當(dāng)所有從站傳輸長度指示完畢后,主站將發(fā)送主站數(shù)據(jù)命令結(jié)束指令,該指令出現(xiàn)位置最晚位于第12字節(jié)。該數(shù)據(jù)指示命令包含4Bit的固定位指示,以及前面?zhèn)鬏斆畹腃RC-4校驗。各個從站通過確認(rèn)該信號以及CRC-4,明確接收命令的正確性,保證后續(xù)數(shù)據(jù)傳輸正常(通過ACK應(yīng)答響應(yīng)幀指出)。
當(dāng)控制命令結(jié)束后,將啟動廣播發(fā)送(如果存在),廣播發(fā)送完畢后,將傳送CRC-8校驗數(shù)據(jù)。各個從站將根據(jù)CRC-8狀態(tài),確認(rèn)傳輸數(shù)據(jù)的正確性。
在廣播數(shù)據(jù)傳輸完畢后,將按照順序依次傳輸各個從站的數(shù)據(jù)。
從站N將根據(jù)傳輸指示位置,確認(rèn)應(yīng)當(dāng)開始傳輸?shù)臅r刻,其起始時刻的計算公式如下:
確認(rèn)控制字結(jié)束時刻:
End_CMD:=4+sum(Byte3_Bit(i))i=0...7
確認(rèn)傳輸長度(根據(jù))
Length(從站)=content(4+sum(Bit[i]))&0x7F 其中i<當(dāng)前從站編號
Length(廣播)=content(4)如果Byte3_Bit(0)=1;否則不存在
廣播信道起始位置:
Broadcast_start=End_CMD+1;
廣播信道結(jié)束位置:
Broadcast_end=End_CMD+BroadCast_Length+1;(廣播存在)
Broadcast_end=End_CMD;(廣播不存在)
從站1響應(yīng)位置:
Station_ACK(1)=End_CMD+BroadCast_Length+2;(廣播存在)
Station_ACK(1)=End_CMD+1;(廣播不存在)
從站1起始位置:
Station_start(1)=End_CMD+BroadCast_Length+3;(廣播存在)
Station_start(1)=End_CMD+2;(廣播不存在)
從站1結(jié)束位置:
Station_end(1)=Station_ACK(1)+Station_length(1)+1;(Station1存在傳輸)
Station_end(1)=Station_ACK(1)-1;(Station1不存在傳輸)
從站N響應(yīng)位置:
Station_ACK(N)=Station_end(N-1)+1;
從站N起始位置:
Station_start(N)=Station_ACK(N)+1;
從站N結(jié)束位置:
Station_end(N)=Station_ACK(N)+Station_length(N)+1;(stationN存在傳輸)
Station_end(N)=Station_ACK(N)-1;(stationN不存在傳輸)
普通控制幀
智能總線的普通控制采用標(biāo)準(zhǔn)的輪詢控制結(jié)構(gòu),依次對每個從站進(jìn)行狀態(tài)指示與控制。當(dāng)一輪控制與指示完畢后,將開始下一輪控制指示,直到所有控制狀態(tài)命令傳輸完畢。當(dāng)本幀的控制任務(wù)結(jié)束后,將啟動普通的數(shù)據(jù)傳輸方式,傳輸格式與普通數(shù)據(jù)幀完全一致(從站的中斷請求始終位于本幀的第1與第2Byte,后續(xù)幀類似)。該幀的設(shè)計格式如圖7和圖8所示。
該幀第0Byte將指示本幀為通用控制幀,從站通過識別該幀格式,明確傳輸幀內(nèi)容。
該幀第1、2Byte設(shè)計為從站中斷請求區(qū),從站的中斷響應(yīng)均從該時間段內(nèi)發(fā)出,每個從站占用2個Bit。任意一種幀格式,均在相同位置包含2Byte的從站中斷請求。
該幀第3Byte為主站控制狀態(tài)字。Bit0默認(rèn)保留(當(dāng)前設(shè)計為控制命令廣播),Bit1~7分別對應(yīng)從站1~從站7是否存在控制命令。當(dāng)控制命令存在時,將在指定的時刻接收控制命令,并做出對應(yīng)的響應(yīng)。
當(dāng)廣播控制命令存在時,將使用Byte4、Byte5,作為廣播消息內(nèi)容。當(dāng)不存在時,Byte4、Byte5將作為從站使用的控制命令。任意一個從站收到控制命令后,將在后續(xù)一個Byte做出響應(yīng)應(yīng)答。
從站命令的位置:
Station_CMD_START(i)=6+sum(bit(n))*3 n∈[1~i-1]廣播消息存在
=4+sum(bit(n))*3 n∈[1~i-1]廣播消息不存在
每個控制命令持續(xù)2個Byte,從站隨后發(fā)送1個Byte的響應(yīng)命令。
當(dāng)一個完整的控制周期發(fā)送完畢后,主控將發(fā)送下一輪控制命令,直到本幀內(nèi)不再需要發(fā)送控制命令。當(dāng)控制命令發(fā)送完畢后,將發(fā)送主站控制命令結(jié)束幀,主站控制命令結(jié)束。隨后發(fā)送總線空閑幀或者發(fā)送普通數(shù)據(jù)傳輸指令,該傳輸指令與普通數(shù)據(jù)傳輸幀的格式完全一致。
專用控制幀
專用控制幀的主要目的是保證在一個傳輸周期內(nèi),對某個從站進(jìn)行專屬控制,保證不受其它從站的干擾,提高控制效率。具體幀結(jié)構(gòu)圖如圖9所示。
該幀起始Byte(Byte0)將指示本幀為專有控制幀。
Byte1與Byte2為從站中斷請求幀,該幀的傳輸機(jī)制與其它幀完全一致。
Byte3將指示從站號(前4個Bit),并等待從站響應(yīng)應(yīng)答(后4Bit)。當(dāng)主站獲得從站響應(yīng)后,將啟動后續(xù)控制命令。
專用控制命令格式與普通控制幀的格式完全一致,均有3個Byte組成,前2個Byte有主站發(fā)送命令,后1個Byte由從站發(fā)送控制命令響應(yīng)。
專用控制幀將依次發(fā)送多個控制命令序列,直到所有控制序列結(jié)束。當(dāng)命令發(fā)送完畢后,將發(fā)送主站傳輸空閑指令,直到本幀傳輸結(jié)束。
專用數(shù)據(jù)幀
專用數(shù)據(jù)幀的主要目的是保證在一個傳輸周期內(nèi),對某個從站進(jìn)行專屬數(shù)據(jù)傳輸,保證不受其它從站的干擾,提高控制效率。具體幀結(jié)構(gòu)圖如圖10所示。
該幀起始Byte(Byte0)將指示本幀為專有數(shù)據(jù)幀。
Byte1與Byte2為從站中斷請求幀,該幀的傳輸機(jī)制與其它幀完全一致。
Byte3將指示從站號(前4個Bit),并等待從站響應(yīng)應(yīng)答(后4Bit)。當(dāng)主站獲得從站響應(yīng)后,將啟動后續(xù)控制命令。
專用數(shù)據(jù)傳輸命令格式與普通控制幀的格式完全一致,均有傳輸長度與方向指示(1Byte),主從數(shù)據(jù)傳輸塊,1個Byte CRC-8校驗組成。
當(dāng)數(shù)據(jù)傳輸完畢后,將進(jìn)入主站傳輸空閑指示狀態(tài)。
專用控制與數(shù)據(jù)混合幀
專用數(shù)據(jù)幀的主要目的是保證在一個傳輸周期內(nèi),對某個從站進(jìn)行專屬控制,并利用剩余的傳輸時間對另外一個從站(也可以是本從站)進(jìn)行數(shù)據(jù)傳輸,提高控制效率。該幀是專用控制信道與專用數(shù)據(jù)信道的結(jié)合體,具體幀結(jié)構(gòu)圖如圖11所示。
該幀起始Byte(Byte0)將指示本幀為專有控制與數(shù)據(jù)混合幀。
Byte1與Byte2為從站中斷請求幀,該幀的傳輸機(jī)制與其它幀完全一致。
Byte3將指示從站號(前4個Bit),并等待從站響應(yīng)應(yīng)答(后4Bit)。當(dāng)主站獲得從站響應(yīng)后,將啟動后續(xù)控制命令。
后續(xù)控制命令與專有控制信道的控制格式完全一致。當(dāng)主站控制命令結(jié)束指示后,將傳輸一個主站數(shù)據(jù)同步序列,表示專有數(shù)據(jù)序列傳輸開始。
專有數(shù)據(jù)同步序列傳輸完畢后,將通過1個Byte完成主站與從站的信號交互應(yīng)答,并啟動數(shù)據(jù)塊傳輸過程。
專用數(shù)據(jù)傳輸命令格式與普通控制幀的格式完全一致,均有傳輸長度與方向指示(1Byte),主從數(shù)據(jù)傳輸塊,1個Byte CRC-8校驗組成。
當(dāng)數(shù)據(jù)傳輸完畢后,將進(jìn)入主站傳輸空閑指示狀態(tài)。
主站中斷幀格式詳細(xì)設(shè)計
該幀主要為提高總線響應(yīng)速度而設(shè)計,能夠在任意位置發(fā)起(同步幀的幀頭部分除外),從而打斷當(dāng)前的傳輸。從站需要一直檢測該序列,保證傳輸?shù)目煽啃?。中斷幀格式如圖12所示。
該幀由9個Byte的特殊序列作為頭,從站檢測該序列后,進(jìn)入中斷響應(yīng)模式。此時主站將呼叫控制的從站,并等待應(yīng)答;主站取得應(yīng)答響應(yīng)后,將發(fā)送從站控制命令,并等待控制命令響應(yīng),后續(xù)將持續(xù)按照該模式完成控制命令。當(dāng)主站完成中斷控制后,將發(fā)送主站傳輸空閑指示。當(dāng)打斷的一幀結(jié)束后,整個系統(tǒng)傳輸回復(fù)正常。
傳輸幀BIT結(jié)構(gòu)詳細(xì)設(shè)計
幀頭控制命令格式如圖13和圖14所示。
各個從站通過識別SCL與SDA的狀態(tài)變化,即可明確當(dāng)前幀的格式以及需要傳輸?shù)膬?nèi)容。
幀內(nèi)部字段格式:
從站點心跳檢測字
格式如圖15所示,總計16bit,其中Bit1保留作為保護(hù)bit,主站實際檢測后續(xù)Bit2到Bit16,共計15bit。SCL與SDA傳輸內(nèi)容一致,由從站驅(qū)動,主站檢測接收。
從站狀態(tài)指示字
格式如圖16所示,總計8bit,其中Bit1保留,現(xiàn)用作廣播指示
專用信道的主從響應(yīng)與應(yīng)答格式
如圖17所示,該數(shù)據(jù)格式的前3bit,由主站驅(qū)動,SCL與SDA發(fā)送相同數(shù)據(jù),由發(fā)送3BIT拼接的二進(jìn)制數(shù)據(jù)(Bit1為MSB)指示內(nèi)容確認(rèn)站址編號從1到7。保留位,目前由主站驅(qū)動,發(fā)送1MCLK。Bit5到Bit8由點到的從站驅(qū)動,SCL與SDA完全相同,發(fā)送內(nèi)容則為從站響應(yīng)應(yīng)答以及當(dāng)前站址編號。
實施例1
一種應(yīng)用于智能冗余總線的時序控制方法,其中,智能冗余總線的整體幀結(jié)構(gòu)包括了:幀號為0的幀,為系統(tǒng)同步幀,所有從站將根據(jù)該系統(tǒng)同步幀,獲取定時信息,與主站進(jìn)行鏈路交互、狀態(tài)檢查,通過該系統(tǒng)同步幀,確知從站的工作狀態(tài),線路通斷情況,并據(jù)此給出交互的機(jī)制;幀號從1到99的幀,為普通數(shù)據(jù)幀,每幀持續(xù)時間為1毫秒(ms),總計125個字節(jié)(Byte);所述同步幀包括:該幀0~3字節(jié)(Byte)組成同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;該幀的4、5字節(jié)(Byte),由從站1向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;該幀的6與7字節(jié)(Byte)、8與9字節(jié)(Byte)、10與11字節(jié)(Byte)、12與13字節(jié)(Byte)、14與15字節(jié)(Byte)、16與17字節(jié)(Byte)分別由從站2、3、4、5、6、7發(fā)送;該幀的第18字節(jié)(Byte)將設(shè)定從站1的傳輸協(xié)議方式,從站可以從接收的數(shù)據(jù),確認(rèn)接收方式;同時,主站在19~24字節(jié)(Byte)依次設(shè)置從站2~7的確認(rèn)接收方式;該幀的第19字節(jié)(Byte),將再次傳輸一個字節(jié)(Byte)的同步碼序列,從而讓從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;該幀的26~27字節(jié)(Byte),將接收從站的中斷響應(yīng),包括對主站設(shè)定接收出錯,各種從站異常,均可在規(guī)定的時刻進(jìn)行反饋;該幀的28~30字節(jié)(Byte),將向各個從站發(fā)送命令控制塊;步驟1:主站通過同步幀的第0~3字節(jié)(Byte)向所有從站發(fā)送同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;步驟2:第一從站,通過同步幀的第4、5字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;步驟3:主站,通過同步幀第18字節(jié)(Byte),設(shè)定第一從站的傳輸協(xié)議方式;步驟4:主站,通過同步幀第19字節(jié)(Byte),再次傳輸一個字節(jié)(Byte)的同步碼序列給第一從站,從而讓第一從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;步驟5:主站和第一從站之間根據(jù)步驟1-4的設(shè)定,通過普通數(shù)據(jù)幀,傳輸數(shù)據(jù)。
優(yōu)選的,該方法還包括:步驟6:除了第一從站以外的其它從站,通過該同步幀的第6-17字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)所述其它從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法。
優(yōu)選的,該方法還包括:步驟7:主站在該同步幀的第19~24字節(jié)(Byte)依次設(shè)置所述的其它從站的確認(rèn)接收方式。
實施例2
一種應(yīng)用于智能冗余總線的時序控制系統(tǒng),其中,智能冗余總線的整體幀結(jié)構(gòu)包括了:幀號為0的幀,為系統(tǒng)同步幀,所有從站將根據(jù)該系統(tǒng)同步幀,獲取定時信息,與主站進(jìn)行鏈路交互、狀態(tài)檢查,通過該系統(tǒng)同步幀,確知從站的工作狀態(tài),線路通斷情況,并據(jù)此給出交互的機(jī)制;幀號從1到99的幀,為普通數(shù)據(jù)幀,每幀持續(xù)時間為1毫秒(ms),總計125個字節(jié)(Byte);所述同步幀包括:該幀0~3字節(jié)(Byte)組成同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;該幀的4、5字節(jié)(Byte),由從站1向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;該幀的6與7字節(jié)(Byte)、8與9字節(jié)(Byte)、10與11字節(jié)(Byte)、12與13字節(jié)(Byte)、14與15字節(jié)(Byte)、16與17字節(jié)(Byte)分別由從站2、3、4、5、6、7發(fā)送;該幀的第18字節(jié)(Byte)將設(shè)定從站1的傳輸協(xié)議方式,從站可以從接收的數(shù)據(jù),確認(rèn)接收方式;同時,主站在19~24字節(jié)(Byte)依次設(shè)置從站2~7的確認(rèn)接收方式;該幀的第19字節(jié)(Byte),將再次傳輸一個字節(jié)(Byte)的同步碼序列,從而讓從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;該幀的26~27字節(jié)(Byte),將接收從站的中斷響應(yīng),包括對主站設(shè)定接收出錯,各種從站異常,均可在規(guī)定的時刻進(jìn)行反饋;該幀的28~30字節(jié)(Byte),將向各個從站發(fā)送命令控制塊;裝置1,用于主站通過同步幀的第0~3字節(jié)(Byte)向所有從站發(fā)送同步序列,所有從站通過該序列確定當(dāng)前的起始位置、幀號并調(diào)整內(nèi)部時鐘,保持與主站時鐘一致;裝置2,用于第一從站,通過同步幀的第4、5字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法;裝置3,用于主站,通過同步幀第18字節(jié)(Byte),設(shè)定第一從站的傳輸協(xié)議方式;裝置4,用于主站,通過同步幀第19字節(jié)(Byte),再次傳輸一個字節(jié)(Byte)的同步碼序列給第一從站,從而讓第一從站準(zhǔn)確定時,并確定數(shù)據(jù)接收起始時刻;裝置5,用于主站和第一從站之間根據(jù)步驟1-4的設(shè)定,通過普通數(shù)據(jù)幀,傳輸數(shù)據(jù)。
優(yōu)選的,該系統(tǒng),包括:裝置6,用于除了第一從站以外的其它從站,通過該同步幀的第6-17字節(jié)(Byte),向主站發(fā)送心跳數(shù)據(jù),主站通過檢測該數(shù)據(jù)序列以及誤包率,確認(rèn)所述其它從站的線路傳輸狀態(tài)以及傳輸路徑時延,并據(jù)此設(shè)定兩者間交互的方法。
優(yōu)選的,該系統(tǒng),包括:裝置7,用于主站在該同步幀的第19~24字節(jié)(Byte)依次設(shè)置所述的其它從站的確認(rèn)接收方式。