專利名稱:一種高速可配置擴展spi總線及其工作方法
技術(shù)領域:
本發(fā)明專利涉及一種工業(yè)控制技術(shù),尤其涉及一種高速可配置擴展SPI總線及其工作方法。
背景技術(shù):
在工業(yè)自動控制中,自動生產(chǎn)系統(tǒng)需要進行大量的數(shù)字信號和模擬信號的采集和操作?,F(xiàn)場總線作為一種通信方法,可實現(xiàn)信號的分布控制,其應用越來越廣泛。現(xiàn)有總線技術(shù)大多通信速率不高,且柔性較差,不容易實現(xiàn)總線上各模塊的同步控制。
SPI總線技術(shù)是一種用于IC之間傳輸?shù)拇薪涌诩夹g(shù),可實現(xiàn)數(shù)據(jù)的全雙工同步傳輸。其物理實現(xiàn)如圖4-1所示。其中SCLK(Serial Clock)為主模塊的時鐘輸出MOSI(MasterOutput,Slave Input)為主模塊輸出給從模塊的時鐘信號線。MISO(Master Input,Slave Output)為從模塊給主模塊的數(shù)據(jù)信號線。SS(Slave Select)為主模塊給從模塊的選通信號線。SPI只適合芯片與芯片之間的短距離高速通信,總線的傳輸速率可達幾十Mbps以上,但無法滿足工業(yè)現(xiàn)場的長距離傳輸和多從模塊的可擴展配置需要。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了解決目前現(xiàn)場總線結(jié)構(gòu)通信速率不高,柔性差,不容易實現(xiàn)總線上各模塊的同步控制等問題,提供一種具有結(jié)構(gòu)合理,使用方便,在SPI總線技術(shù)基礎上改進和通信協(xié)議的研發(fā),實現(xiàn)了主從模塊之間的高速長距離傳輸和子模塊的同步控制,可對任何子模塊的擴展和改變進行在線識別和配置,并協(xié)調(diào)各模塊同步動作等優(yōu)點的高速可配置擴展SPI總線及其配置方法。
為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案 一種高速可配置擴展SPI總線,它有至少一個主模塊及至少一個從模塊,以及SPI總線中的SCLK時鐘輸出信號線、MOSI數(shù)據(jù)線、MISO數(shù)據(jù)線、SS選通信號線以及配置信號線SCFG,所述主模塊內(nèi)設有可變長總線發(fā)送/接收器FPGA/CPLD,從模塊內(nèi)設有總線接收/發(fā)送器FPGA/CPLD,它們共同組成總線配置收發(fā)器;主模塊可變長總線發(fā)送/接收器FPGA/CPLD通過串行級聯(lián)配置信號線SCFG與其中一個從模塊的總線接收/發(fā)送器FPGA/CPLD連接,該從模塊總線接收/發(fā)送器FPGA/CPLD則通過配置信號線SCFG與其它從模塊總線接收/發(fā)送器FPGA/CPLD相互串聯(lián),通過通信協(xié)議和可編程邏輯設計進行數(shù)據(jù)報文的可變長度傳輸和從模塊的柔性在線配置;同時主模塊的SPI總線還通過屏蔽雙絞線與其他從模塊連接,并對SPI總線信號進行差分處理,實現(xiàn)數(shù)據(jù)包的高速長距離的一主多從通訊。
所述可變長總線發(fā)送/接收器FPGA/CPLD包括報文長度寄存器、發(fā)送計數(shù)器,發(fā)送計數(shù)器接收發(fā)送使能信號和計數(shù)時鐘信號,報文長度寄存器、發(fā)送計數(shù)器輸出端接比較器,比較器輸出端接SCLK時鐘輸出信號線,計數(shù)時鐘信號還分兩路,一路接SCLK時鐘輸出信號線,另一路接串行發(fā)送器輸入端,其輸出端接MOSI數(shù)據(jù)線。
所述總線接收/發(fā)送器FPGA/CPLD包括控制信息接收器和數(shù)據(jù)信息接收器;主板和每個子板各有至少一個控制信息接收器和一個數(shù)據(jù)信息接收器。
一種高速可配置擴展SPI總線的工作方法,它的方法為, 1)系統(tǒng)上電自檢; 2)主模塊對從模塊的自動識別和配置,以實現(xiàn)一主多從模式的傳輸,過程為主模塊通過通信協(xié)議發(fā)出的配置信號高電平使與之連接的第一從模塊接收器的CFG_EN信號置高,該從模塊進行配制,接收主模塊配置數(shù)據(jù)包并返回自己的信息;第一從模塊配置結(jié)束后,禁止自身配置模塊工作,同時將CFG_OE信號置高,此時與之串聯(lián)的下一從模塊中的CFG_EN被置高,該從模塊的配置操作被觸發(fā),依次觸發(fā)下去;直至最后無配置信息返回時,配置結(jié)束,從而實現(xiàn)軟件在線配置,以滿足不同長度的數(shù)據(jù)包傳輸及子模塊的在線擴展和配置; 3)進入正常操作模式;總線地址分廣播地址和普通地址,若為廣播地址,所有子模塊同步接收到主模塊命令;若為普通地址,子模塊只接收與自身地址匹配的數(shù)據(jù)包,在接收的同時將相應數(shù)據(jù)發(fā)送至主模塊;配合報文協(xié)議,實現(xiàn)位置控制,I/O控制及設置的其它功能。
所述步驟2)中通信協(xié)議包括主至從通信報文M2S和從至主通信報文S2M;它們又各由配置報文C報文和數(shù)據(jù)報文D報文組成,由報文的最高位MSB標識。
所述主至從通信報文M2S的配置報文C即M2S C報文格式為標記為標識位C/D,若標記為1為命令報文,0位數(shù)據(jù)報文;4bits的主模塊地址位BA、3bits的后面緊跟的報文數(shù)據(jù)長度DL;數(shù)據(jù)信息DATA,其長度由數(shù)據(jù)報文長度DL確定;校驗位VR; 從至主通信數(shù)據(jù)報文S2M的配置報文C即S2M C報文格式為,子板相關描述信息DATA;校驗位VR; 主至從通信數(shù)據(jù)報文M2S的數(shù)據(jù)報文D即M2S D報文格式為,標識位C/D,若標記為1則為命令報文,0為數(shù)據(jù)報文;4bits的報文傳送地址BS;4bits的板內(nèi)子模塊地址MS;數(shù)據(jù)生效控制位DC;數(shù)據(jù)信息位DATA,其長度由配置時的DL確定;校驗位VR; 從至主通信數(shù)據(jù)報文S2M的數(shù)據(jù)報文D即S2M D報文格式為,標識位C/D,若標記為1則為命令報文,0為數(shù)據(jù)報文;數(shù)據(jù)類型位DC,0表示數(shù)據(jù)為即時數(shù)據(jù),1表示緩沖區(qū)中鎖存的同步數(shù)據(jù);數(shù)據(jù)信息DATA,長度由配置時的DL確定;校驗位VR。
所述步驟2)中在主模塊對從模塊配置時,從模塊監(jiān)測到配置信號高電平后,提取M2SC報文BA,DL位,按BA,DL位的信息將S2M C報文發(fā)送給主模塊,S2M C報文的發(fā)送與M2S C報文接收同步;與此同時提取M2S中相關信息配置報文發(fā)送長度,記錄自身地址;配置過程中子模塊通過計數(shù)器將SCLK計數(shù)控制,通過控制信息接收器實現(xiàn)信息提取至相應的寄存器中。
所述步驟3)正常操作模式中位置控制為,主模塊發(fā)送數(shù)據(jù)時將M2S D報文標識位DC置1,采用普通地址發(fā)送,使各模塊接收到數(shù)據(jù)后暫時存放在緩沖區(qū)中,然后通過DC置1的廣播報文將各子模塊中緩沖的數(shù)據(jù)同步輸出實現(xiàn)各軸同步控制;而在同步輸出數(shù)據(jù)的同時,各子模塊會同步鎖存外設采樣數(shù)據(jù),然后在下個周期給各子模塊發(fā)送命令數(shù)據(jù)時由主模塊依次讀出; I/O控制為若各I/O點無同步要求,可使M2S D報文置0,使傳至子模塊的數(shù)據(jù)立即生效并采樣外設的即時數(shù)據(jù)傳至主模塊;若有同步要求,可參考位控功能的方法實現(xiàn)各模塊之間的同步輸出和采樣。
所述步驟3)中,對于普通地址,控制信息接收器將數(shù)據(jù)首先接收板地址;當?shù)刂方邮胀戤厱r,判斷若非本板地址,將本板發(fā)送輸出端置高阻禁止本板此次通信的數(shù)據(jù)發(fā)送以防止MISO數(shù)據(jù)線的多驅(qū)動;若為本板地址,繼續(xù)接收模塊地址和DC位;接收完DC位后將模塊地址對應的數(shù)據(jù)信息接收器打開接收數(shù)據(jù);數(shù)據(jù)信息接收器接收數(shù)據(jù)并將其存在接收緩沖區(qū);待數(shù)據(jù)接收完成后,若DC位為高,則使用總線上SS信號將數(shù)據(jù)從緩沖中發(fā)出,若為低,等待廣播命令與其他板同步發(fā)出; 對于廣播地址,控制信息接收器將數(shù)據(jù)首先接收地址;若為廣播地址,并且DC位為0時,使能所有模塊數(shù)據(jù)信息接收器接收公共廣播數(shù)據(jù);若DC接收位為1,保持所有數(shù)據(jù)信息接收器禁止,待數(shù)據(jù)傳輸完成后利用SS信號將所有模塊接收緩沖區(qū)中的數(shù)據(jù)發(fā)出。
本發(fā)明主要包括主模塊,從模塊以及SPI通信總線中的SS,SCFG,MOSI,MISO,SCLK信號線構(gòu)成,在SPI(Serial Peripheral Interface)的基礎上增加了配置線并將信號差分處理,實現(xiàn)數(shù)據(jù)包的高速長距離的一主多從通訊。通過報文協(xié)議和FPGA/CPLD可編程邏輯設計實現(xiàn)數(shù)據(jù)報文的可變長度傳輸和子模塊的柔性在線配置。
本發(fā)明通過增加一根SCFG串行級聯(lián)配置線,使得系統(tǒng)具有對從模塊的配置功能。通過對總線信號的差分處理,解決了信號的長距離抗干擾傳輸問題。其通信協(xié)議采用尋址機制和FPGA/CPLD可編程配置信息提取邏輯設計,實現(xiàn)了子模塊的在線識別配置和擴展。通信協(xié)議采用同步機制實現(xiàn)各從模塊之間數(shù)據(jù)采集的同步和FPGA/CPLD中相應的命令發(fā)送的同步功能邏輯設計。通過通信協(xié)議可變長配置方法和FPGA/CPLD的可變長總線發(fā)送/接收器,實現(xiàn)了數(shù)據(jù)報文的可變長傳輸和數(shù)據(jù)包長度的在線配置,進而實現(xiàn)了一主多從的架構(gòu)和從模塊的柔性在線配置和擴展。
本發(fā)明的有益效果是 a傳輸速度高,傳輸距離長 通過對SPI總線的差分化改進,可實現(xiàn)信號的高速長距離傳輸。
b報文數(shù)據(jù)包長度的可配置 通過配置,可實現(xiàn)對于不同子模塊不同報文長度的發(fā)送,可大大提高系統(tǒng)的柔性。
c子模塊及模塊功能的在線配置 通過配置,可實現(xiàn)不同子模塊之間的任意組合。使模塊擴展方便,開發(fā)維護簡單。
d模塊數(shù)量的在線配置 通過配置,可實現(xiàn)模塊的隨意增減。使系統(tǒng)柔性大大提高。
e模塊間的同步協(xié)調(diào) 可實現(xiàn)各子模塊之間的同步協(xié)調(diào),滿足位置控制和具有同步要求的其他控制領域需要。
本發(fā)明的傳輸介質(zhì)采用屏蔽雙絞線,主從模塊的關鍵技術(shù)通過先進的FPGA/CPLD技術(shù)實現(xiàn),成本低廉,運行可靠。
圖1為傳統(tǒng)SPI總線結(jié)構(gòu)示意圖; 圖2為總線物理實現(xiàn)結(jié)構(gòu)示意圖; 圖3為主模塊總線發(fā)送器結(jié)構(gòu)示意圖; 圖4為總線配置線連接示意圖; 圖5為總線配置信息提取功能示意圖; 圖6為正常通信結(jié)構(gòu)示意圖; 圖7為串行總線結(jié)構(gòu)設計圖。
其中,1、主模塊,2、從模塊,3、SPI總線,4、串行級聯(lián)配置線SCFG,5、報文長度寄存器,6、發(fā)送計數(shù)器,7、比較器,8、串行發(fā)送器,9、串行接收器。
具體實施例方式 下面結(jié)合附圖與實施例對本發(fā)明作進一步說明。
本發(fā)明內(nèi)容主要包括物理實現(xiàn)和軟件協(xié)議兩部分??偩€通過對SPI物理層的改造,可以實現(xiàn)高速長距離的傳輸。并且可實現(xiàn)總線上各掛靠模塊的在線軟件配置。具體實現(xiàn)如下。
圖1為現(xiàn)有SPI總線結(jié)構(gòu)圖。
圖2中,本發(fā)明將信號進行差分處理以抑制干擾,增加傳輸?shù)目煽啃?,使傳輸距離增長。增加一個串行級聯(lián)配置信號,可以實現(xiàn)對從模塊的自動識別和配置,以實現(xiàn)一主多從模式的傳輸。收發(fā)器用FPGA/CPLD實現(xiàn),可用軟件在線配置,以實現(xiàn)不同長度的數(shù)據(jù)包傳輸。
它有至少一個主模塊1及至少一個從模塊2,以及SPI總線3中的SCLK時鐘輸出信號線、MOSI數(shù)據(jù)線、MISO數(shù)據(jù)線、SS選通信號線,SCFG配置信號線,主模塊1內(nèi)設有可變長總線發(fā)送/接收器FPGA/CPLD,從模塊2內(nèi)設有總線接收/發(fā)送器FPGA/CPLD,它們共同組成總線配置器;主模塊1可變長總線發(fā)送/接收器FPGA/CPLD通過串行級聯(lián)配置線SCFG 4與其中一個從模塊2的總線接收/發(fā)送器FPGA/CPLD連接,該從模塊2總線接收/發(fā)送器FPGA/CPLD則通過串行級聯(lián)配置線SCFG 4與其他從模塊2總線接收/發(fā)送器FPGA/CPLD相互串聯(lián),通過通信協(xié)議和可編程邏輯設計進行數(shù)據(jù)報文的可變長度傳輸和從模塊的柔性在線配置;同時主模塊的SPI總線3還通過屏蔽雙絞線與其他從模塊連接,并對SPI總線信號進行差分處理,實現(xiàn)數(shù)據(jù)包的高速長距離的一主多從通訊。
圖3中,可變長總線發(fā)送/接收器FPGA/CPLD包括報文長度寄存器5、發(fā)送計數(shù)器6,發(fā)送計數(shù)器6接收發(fā)送使能信號和計數(shù)時鐘信號,報文長度寄存器5、發(fā)送計數(shù)器6輸出端接比較器7,比較器7輸出端接SCLK時鐘輸出信號線,計數(shù)時鐘信號還分兩路,一路接SCLK時鐘輸出信號線,另一路接串行發(fā)送器8輸入端,其輸出端接MOSI數(shù)據(jù)線。
CPLD中總線接收器包括控制信息接收器8和數(shù)據(jù)信息接收器;每個子板有一個控制信息接收器,子板上每個子模塊對應有一個數(shù)據(jù)信息接收器。
通信數(shù)據(jù)報文分Master to Slave(M2S)數(shù)據(jù)報文和Slave to Master(S2M)數(shù)據(jù)報文。其中M2S和S2M數(shù)據(jù)報文又各由配置報文(C報文)和數(shù)據(jù)報文(D報文)組成,由報文的最高位(MSB)標識。
M2S C報文格式定義如下 各個數(shù)據(jù)位的描述如下表所示 S2M C報文格式定義如下 各個數(shù)據(jù)位的描述如下表所示 M2S D報文格式定義如下 各數(shù)據(jù)位描述如下 S2M D報文格式定義如下 各數(shù)據(jù)位描述如下 串行級聯(lián)配置線SCFG用來觸發(fā)系統(tǒng)配置操作,具體過程如下 圖4中,主模塊1發(fā)出的配置信號高電平使第一從模塊2內(nèi)部CFG_EN信號置高,第一從模塊2進行配制,接收主模塊1配置數(shù)據(jù)包并返回自己的信息。第一從模塊2配置結(jié)束后,禁止自身配置模塊工作,同時將CFG_OE信號置高,此時下一從模塊2中CFG_EN被置高,該從模塊2的配置操作被觸發(fā)。依次下去。直至最后無配置信息返回時,認為配置結(jié)束。轉(zhuǎn)入正常操作模式。
單個模塊的配置過程為 模塊監(jiān)測到配置信號高電平后,提取M2S C報文BA,DL位,按BA,DL位的信息將S2MC報文發(fā)送給主模塊,S2M C報文的發(fā)送與M2S C報文接收同步。與此同時提取M2S中相關信息配置報文發(fā)送長度,記錄自身地址。配置過程中子模塊通過計數(shù)器將SCLK計數(shù)控制,通過控制信息接收器實現(xiàn)信息提取至相應的寄存器中,如圖5所示。
正常工作模式使用D報文,報文中地址分為廣播地址和普通地址。若接收到的報文地址為廣播地址,所有子模塊同步接收到主模塊命令或同步數(shù)據(jù)。若為普通地址,子模塊只接收與自身地址匹配的數(shù)據(jù)包,在接收的同時將相應數(shù)據(jù)發(fā)送至主模塊,若報文地址與自身地址不匹配,則將自身與MISO的連接置高阻防止MISO多驅(qū)動的發(fā)生,如圖6。
配合協(xié)議M2S報文和S2M報文中DC位的使用,可以實現(xiàn)位置控制,I/O控制功能。
a.位置控置功能舉例 位置控制中,需要將發(fā)送給各軸的位置命令同步生效并需要獲得各軸的同步數(shù)據(jù)。但各個軸有可能被分配到不同的子板中或者相同子板的不同子模塊中。此種情況下可在主模塊發(fā)送數(shù)據(jù)時將使用普通地址傳輸?shù)腗2S D報文DC置1,使各模塊接收到數(shù)據(jù)后暫時存放在緩沖區(qū)中,然后通過DC置1的廣播地址傳輸?shù)膹V播報文將各子模塊中緩沖的數(shù)據(jù)同步輸出實現(xiàn)各軸同步控制。而在而在同步輸出數(shù)據(jù)的同時,各子模塊會同步鎖存外設數(shù)據(jù),然后在下個周期給各子模塊發(fā)送命令數(shù)據(jù)時由主模塊依次讀出。(參見M2S D報文結(jié)構(gòu)。) b.I/O控制功能舉例 用于I/O控制時,若各I/O點無同步要求,可使M2S D報文置0,使數(shù)據(jù)立即生效并采樣外設的即時數(shù)據(jù)。若有同步要求,可參考位控功能的方法實現(xiàn)各模塊之間的同步輸出和采樣。
本發(fā)明子板總線接收器可在CPLD中基于串行接收器實現(xiàn)。分為控制信息接收器和數(shù)據(jù)信息接收器。每個子板有一個控制信息接收器,子板上每個子模塊對應有一個數(shù)據(jù)信息接收器。和具體接收過程設計如下。
a.普通數(shù)據(jù)包接收 控制信息接收器將數(shù)據(jù)首先接收板地址。當?shù)刂方邮胀戤厱r,判斷若非本板地址,將本板發(fā)送輸出端置高阻禁止本板此次數(shù)據(jù)包的接收。若為本板地址,繼續(xù)接收模塊地址和DC位。接收完DC位后將模塊地址對應的數(shù)據(jù)信息接收器打開接收數(shù)據(jù)。數(shù)據(jù)信息接收器接收數(shù)據(jù)并將其存在接收緩沖區(qū)。待數(shù)據(jù)接收完成后,若DC位為高,則使用總線上SS信號將數(shù)據(jù)從緩沖中發(fā)出,若為低,等待廣播命令與其他板同步發(fā)出。
b.廣播數(shù)據(jù)包接收 控制信息接收器將數(shù)據(jù)首先接收地址。若為廣播地址,并且DC位為0時,使能所有模塊數(shù)據(jù)信息接收器接收公共廣播數(shù)據(jù)。若DC接收位為1,保持所有數(shù)據(jù)信息接收器禁止,待數(shù)據(jù)傳輸完成后利用SS信號將所有模塊接收緩沖區(qū)中的數(shù)據(jù)發(fā)出。
主模塊可變長總線發(fā)送器可實現(xiàn)不同長度報文的發(fā)送。主板設計中,將設定的報文長度存儲在報文長度寄存器中,計數(shù)器將發(fā)送數(shù)據(jù)位數(shù)計數(shù),計數(shù)值和報文長度比較來控制數(shù)據(jù)發(fā)送長度,如圖3所示。
串行發(fā)送器的設計如圖7所示,其中SS信號作為計數(shù)器的復位信號和使能信號。在SS到來時計數(shù)器復位并開始計數(shù),SS信號結(jié)束時計數(shù)禁止。由計數(shù)器的計數(shù)值來控制多路交叉開關的通道選擇,按位將數(shù)據(jù)發(fā)送緩沖區(qū)中的數(shù)發(fā)出。其中,SS信號作為計數(shù)器的復位信號和使能信號。在SS到來時計數(shù)器復位并開始計數(shù),SS信號結(jié)束時計數(shù)禁止。由計數(shù)器的計數(shù)值來控制多路交叉開關的通道選擇,按位將數(shù)據(jù)發(fā)送緩沖區(qū)中的數(shù)發(fā)出。
權(quán)利要求
1、一種高速可配置擴展SPI總線,它有至少一個主模塊及至少一個從模塊,以及SPI總線中的SCLK時鐘輸出信號線、MOSI數(shù)據(jù)線、MISO數(shù)據(jù)線、SS選通信號線以及配置信號線SCFG,其特征是所述主模塊內(nèi)設有可變長總線發(fā)送/接收器器FPGA/CPLD,從模塊內(nèi)設有總線接收/發(fā)送器FPGA/CPLD,它們共同組成總線配置收發(fā)器;主模塊可變長總線發(fā)送/接收器FPGA/CPLD通過串行級聯(lián)配置信號線SCFG與其中一個從模塊的總線接收/發(fā)送器FPGA/CPLD連接,該從模塊總線接收/發(fā)送器FPGA/CPLD則通過配置信號線SCFG與其它從模塊總線接收/發(fā)送器FPGA/CPLD相互串聯(lián),通過通信協(xié)議和可編程邏輯設計進行數(shù)據(jù)報文的可變長度傳輸和從模塊的柔性在線配置;同時主模塊的SPI總線還通過屏蔽雙絞線與其他從模塊連接,并對SPI總線信號進行差分處理,實現(xiàn)數(shù)據(jù)包的高速長距離的一主多從通訊。
2、根據(jù)權(quán)利要求1所述的高速可配置擴展SPI總線,其特征是所述可變長總線發(fā)送/接收器FPGA/CPLD包括報文長度寄存器、發(fā)送計數(shù)器,發(fā)送計數(shù)器接收發(fā)送使能信號和計數(shù)時鐘信號,報文長度寄存器、發(fā)送計數(shù)器輸出端接比較器,比較器輸出端接SCLK時鐘輸出信號線,計數(shù)時鐘信號還分兩路,一路接SCLK時鐘輸出信號線,另一路接串行發(fā)送器輸入端,其輸出端接MOSI數(shù)據(jù)線。
3、根據(jù)權(quán)利要求1所述的高速可配置擴展SPI總線,其特征是所述總線接收/發(fā)送器FPGA/CPLD包括控制信息接收器和數(shù)據(jù)信息接收器;主板和每個子板各有至少一個控制信息接收器和一個數(shù)據(jù)信息接收器。
4、一種權(quán)利要求1所述高速可配置擴展SPI總線的工作方法,其特征是它的方法為,
1)系統(tǒng)上電自檢;
2)主模塊對從模塊的自動識別和配置,以實現(xiàn)一主多從模式的傳輸,過程為主模塊通過通信協(xié)議發(fā)出的配置信號高電平使與之連接的第一從模塊接收器的CFG_EN信號置高,該從模塊進行配制,接收主模塊配置數(shù)據(jù)包并返回自己的信息;第一從模塊配置結(jié)束后,禁止自身配置模塊工作,同時將CFG_OE信號置高,此時與之串聯(lián)的下一從模塊中的CFG_EN被置高,該從模塊的配置操作被觸發(fā),依次觸發(fā)下去;直至最后無配置信息返回時,配置結(jié)束,從而實現(xiàn)軟件在線配置,以滿足不同長度的數(shù)據(jù)包傳輸及子模塊的在線擴展和配置;
3)進入正常操作模式;總線地址分廣播地址和普通地址,若為廣播地址,所有子模塊同步接收到主模塊命令;若為普通地址,子模塊只接收與自身地址匹配的數(shù)據(jù)包,在接收的同時將相應數(shù)據(jù)發(fā)送至主模塊;配合報文協(xié)議,實現(xiàn)位置控制,I/O控制及設置的其它功能。
5、根據(jù)權(quán)利要求4所述的高速可配置擴展SPI總線的配置方法,其特征是所述步驟2)中通信協(xié)議包括主至從通信報文M2S和從至主通信報文S2M;它們又各由配置報文C報文和數(shù)據(jù)報文D報文組成,由報文的最高位MSB標識。
6、根據(jù)權(quán)利要求5所述的高速可配置擴展SPI總線的配置方法,其特征是所述主至從通信報文M2S的配置報文C即M2S C報文格式為標記為標識位C/D,若標記為1為命令報文,0位數(shù)據(jù)報文;4bits的主模塊地址位BA、3bits的后面緊跟的報文數(shù)據(jù)長度DL;數(shù)據(jù)信息DATA,其長度由數(shù)據(jù)報文長度DL確定;校驗位VR;
從至主通信數(shù)據(jù)報文S2M的配置報文C即S2M C報文格式為,子板相關描述信息DATA;校驗位VR;
主至從通信數(shù)據(jù)報文M2S的數(shù)據(jù)報文D即M2S D報文格式為,標識位C/D,若標記為1則為命令報文,0為數(shù)據(jù)報文;4bits的報文傳送地址BS;4bits的板內(nèi)子模塊地址MS;數(shù)據(jù)生效控制位DC;數(shù)據(jù)信息位DATA,其長度由配置時的DL確定;校驗位VR;
從至主通信數(shù)據(jù)報文S2M的數(shù)據(jù)報文D即S2M D報文格式為,標識位C/D,若標記為1則為命令報文,0為數(shù)據(jù)報文;數(shù)據(jù)類型位DC,0表示數(shù)據(jù)為即時數(shù)據(jù),1表示緩沖區(qū)中鎖存的同步數(shù)據(jù);數(shù)據(jù)信息DATA,長度由配置時的DL確定;校驗位VR。
7、根據(jù)權(quán)利要求4或6所述的高速可配置擴展SPI總線,其特征是所述步驟2)中在主模塊對從模塊配置時,從模塊監(jiān)測到配置信號高電平后,提取M2S C報文BA,DL位,按BA,DL位的信息將S2M C報文發(fā)送給主模塊,S2M C報文的發(fā)送與M2S C報文接收同步;與此同時提取M2S中相關信息配置報文發(fā)送長度,記錄自身地址;配置過程中子模塊通過計數(shù)器將SCLK計數(shù)控制,通過控制信息接收器實現(xiàn)信息提取至相應的寄存器中。
8、根據(jù)權(quán)利要求4或6所述的高速可配置擴展SPI總線,其特征是所述步驟3)正常操作模式中位置控制為,主模塊發(fā)送數(shù)據(jù)時將M2S D報文標識位DC置1,采用普通地址發(fā)送,使各模塊接收到數(shù)據(jù)后暫時存放在緩沖區(qū)中,然后通過DC置1的廣播報文將各子模塊中緩沖的數(shù)據(jù)同步輸出實現(xiàn)各軸同步控制;而在同步輸出數(shù)據(jù)的同時,各子模塊會同步鎖存外設采樣數(shù)據(jù),然后在下個周期給各子模塊發(fā)送命令數(shù)據(jù)時由主模塊依次讀出;
I/O控制為若各I/O點無同步要求,可使M2S D報文置0,使傳至子模塊的數(shù)據(jù)立即生效并采樣外設的即時數(shù)據(jù)傳至主模塊;若有同步要求,可參考位控功能的方法實現(xiàn)各模塊之間的同步輸出和采樣。
9、根據(jù)權(quán)利要求4或6所述的高速可配置擴展SPI總線,其特征是所述步驟3)中,對于普通地址,控制信息接收器將數(shù)據(jù)首先接收板地址;當?shù)刂方邮胀戤厱r,判斷若非本板地址,將本板發(fā)送輸出端置高阻禁止本板此次通信的數(shù)據(jù)發(fā)送以防止MISO數(shù)據(jù)線的多驅(qū)動;若為本板地址,繼續(xù)接收模塊地址和DC位;接收完DC位后將模塊地址對應的數(shù)據(jù)信息接收器打開接收數(shù)據(jù);數(shù)據(jù)信息接收器接收數(shù)據(jù)并將其存在接收緩沖區(qū);待數(shù)據(jù)接收完成后,若DC位為高,則使用總線上SS信號將數(shù)據(jù)從緩沖中發(fā)出,若為低,等待廣播命令與其他板同步發(fā)出;
對于廣播地址,控制信息接收器將數(shù)據(jù)首先接收地址;若為廣播地址,并且DC位為0時,使能所有模塊數(shù)據(jù)信息接收器接收公共廣播數(shù)據(jù);若DC接收位為1,保持所有數(shù)據(jù)信息接收器禁止,待數(shù)據(jù)傳輸完成后利用SS信號將所有模塊接收緩沖區(qū)中的數(shù)據(jù)發(fā)出。
全文摘要
本發(fā)明公開了一種高速可配置擴展SPI總線及其工作方法。其結(jié)構(gòu)為它有至少一個主模塊及至少一個從模塊,以及SPI總線中的SCLK時鐘輸出信號線、MOSI數(shù)據(jù)線、MISO數(shù)據(jù)線、SS選通信號線以及配置信號線SCFG,主模塊內(nèi)設有可變長總線發(fā)送/接收器FPGA/CPLD,從模塊內(nèi)設有總線接收/發(fā)送器FPGA/CPLD,它們組成總線配置收發(fā)器;主模塊可變長總線發(fā)送/接收器FPGA/CPLD通過串行級聯(lián)配置信號線SCFG與其中一個從模塊的總線接收/發(fā)送器FPGA/CPLD連接,該從模塊總線接收/發(fā)送器FPGA/CPLD則通過配置信號線SCFG與其它從模塊總線接收/發(fā)送器FPGA/CPLD相互串聯(lián);同時主模塊的SPI總線還通過屏蔽雙絞線與其他從模塊連接,并對SPI總線信號進行差分處理??蓪θ魏巫幽K的擴展和改變進行在線識別和配置,并協(xié)調(diào)各模塊同步動作。
文檔編號G05B19/418GK101067804SQ20071001572
公開日2007年11月7日 申請日期2007年5月29日 優(yōu)先權(quán)日2007年5月29日
發(fā)明者胡天亮, 張承瑞, 武洪恩, 李鵬 申請人:山東大學