本發(fā)明涉及通信技術(shù),尤其涉及一種SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)。
背景技術(shù):
串行外設接口(Serial Peripheral Interface;簡稱:SPI)協(xié)議是一種高速的、全雙工、同步的通信總線協(xié)議。由于SPI協(xié)議為全雙工且沒有定義速度限制,其傳輸速度通常能夠達到甚至超過10Mbps,非常適用于高速數(shù)據(jù)傳輸。因此,SPI總線協(xié)議在列車乘客信息系統(tǒng)(Passenger Information System;簡稱:PIS系統(tǒng))和閉路電視系統(tǒng)(Closed Circuit Television;簡稱CCTV系統(tǒng))中得到了廣泛應用。CANopen是一種基于控制局域網(wǎng)絡(Controller Area Network;簡稱CAN)的高層通訊協(xié)議,包括通信子協(xié)議和設備子協(xié)議,CANopen協(xié)議在列車控制網(wǎng)絡系統(tǒng)中有廣泛的應用。在列車實際控制過程中,SPI協(xié)議和CANopen協(xié)議之間需要進行數(shù)據(jù)交換。
但是,現(xiàn)有技術(shù)中,SPI協(xié)議與CANopen協(xié)議的數(shù)據(jù)幀格式不同,從而導致SPI協(xié)議格式的數(shù)據(jù)與CANopen協(xié)議格式的數(shù)據(jù)無法直接進行通信。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān),以實現(xiàn)SPI協(xié)議格式的數(shù)據(jù)與CANopen協(xié)議格式的數(shù)據(jù)之間的通信。
本發(fā)明提供一種SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān),包括:
SPI接口、控制器和CANopen總線收發(fā)器,其中,所述SPI接口、所述控制器和所述CANopen總線收發(fā)器依次相連,所述控制器用于SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)之間的相互轉(zhuǎn)換,所述SPI接口用于在SPI總線與所述控制器之間傳輸所述SPI協(xié)議格式的數(shù)據(jù),所述CANopen總 線收發(fā)器用于在CANopen總線與所述控制器之間傳輸所述CANopen協(xié)議格式的數(shù)據(jù)。
進一步地,上述SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)中,所述CANopen總線收發(fā)器還用于CANopen協(xié)議格式的數(shù)字信號和CANopen協(xié)議格式的雙線差分信號之間的相互轉(zhuǎn)換。
進一步地,上述SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)中,還包括:SPI光電隔離接口,所述SPI光電隔離接口位于所述SPI接口與所述控制器之間,所述SPI光電隔離接口用于濾除所述SPI協(xié)議格式的數(shù)據(jù)中的干擾信號。
進一步地,上述SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)中,還包括:CANopen光電隔離接口,所述CANopen光電隔離接口位于所述CANopen總線收發(fā)器與所述控制器之間,所述CANopen光電隔離接口用于濾除所述CANopen協(xié)議格式的數(shù)據(jù)中的干擾信號。
進一步地,上述SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)中,所述控制器為STM32F103。
進一步地,上述SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)中,所述STM32F103還用于提供工作電源和監(jiān)視電壓。
本發(fā)明提供一種SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān),通過SPI接口、控制器和CANopen總線收發(fā)器依次相連,控制器用于SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)之間的相互轉(zhuǎn)換,SPI接口用于在SPI總線與控制器之間傳輸SPI協(xié)議格式的數(shù)據(jù),CANopen總線收發(fā)器用于在CANopen總線與控制器之間傳輸CANopen協(xié)議格式的數(shù)據(jù),能使SPI協(xié)議和CANopen協(xié)議的之間相互轉(zhuǎn)換,實現(xiàn)了SPI協(xié)議格式的數(shù)據(jù)與CANopen協(xié)議格式的數(shù)據(jù)直接進行通信。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)實施例一的結(jié)構(gòu)示意圖;
圖2為本發(fā)明SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)實施例二的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)實施例一的結(jié)構(gòu)示意圖。如圖1所示,本實施例提供的SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)包括:
SPI接口11、控制器12和CANopen總線收發(fā)器13,其中,SPI接口11、控制器12和CANopen總線收發(fā)器13依次相連,控制器12用于SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)之間的相互轉(zhuǎn)換,SPI接口用于在SPI總線14與控制器12之間傳輸SPI協(xié)議格式的數(shù)據(jù),CANopen總線收發(fā)器13用于在CANopen總線15與控制器12之間傳輸CANopen協(xié)議格式的數(shù)據(jù)。
具體地,本實施例提供的SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)可以應用在列車等工業(yè)現(xiàn)場控制領域中。在需要SPI協(xié)議格式的數(shù)據(jù)與CANopen協(xié)議格式的數(shù)據(jù)通信時,由于SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)的數(shù)據(jù)幀格式不同,兩者之間不能直接通信,需要使用本實施例提供的SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)實現(xiàn)兩者的通信。SPI接口11、控制器12和CANopen總線收發(fā)器13依次電連接,即SPI接口11連接控制器12,控制器12連接CANopen總線收發(fā)器13。
當需要從SPI總線14發(fā)送數(shù)據(jù)到CANopen總線15時:SPI接口11接收SPI總線14上發(fā)送的SPI協(xié)議格式的數(shù)據(jù),或者,SPI接口11以一定的頻率定期從SPI總線14上獲取SPI協(xié)議格式的數(shù)據(jù),本實施例對此不做限制,只要SPI接口11能從SPI總線14上得到SPI協(xié)議格式的數(shù)據(jù)即可。SPI接口11將SPI協(xié)議格式的數(shù)據(jù)發(fā)送給控制器12,控制器12將SPI協(xié)議格式的數(shù) 據(jù)轉(zhuǎn)換成CANopen協(xié)議格式的數(shù)據(jù),具體地,控制器12對SPI協(xié)議格式的數(shù)據(jù)進行解碼,解碼出有效數(shù)據(jù)后再按照CANopen協(xié)議格式的數(shù)據(jù)進行封裝,得到CANopen協(xié)議格式的數(shù)據(jù)??刂破?2將轉(zhuǎn)換后的CANopen協(xié)議格式的數(shù)據(jù)發(fā)送給CANopen總線收發(fā)器13,CANopen總線收發(fā)器13將CANopen協(xié)議格式的數(shù)據(jù)發(fā)送給CANopen總線15,完成一次SPI總線14上的數(shù)據(jù)和CANopen總線15上的數(shù)據(jù)的通信。
當需要從CANopen總線15發(fā)送數(shù)據(jù)到SPI總線14時:CANopen總線收發(fā)器13接收CANopen總線15上發(fā)送的CANopen協(xié)議格式的數(shù)據(jù),或者,CANopen總線收發(fā)器13以一定的頻率定期從CANopen總線15上獲取CANopen協(xié)議格式的數(shù)據(jù),本實施例對此不做限制。CANopen總線收發(fā)器13將CANopen協(xié)議格式的數(shù)據(jù)發(fā)送給控制器12,控制器12將CANopen協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換成SPI協(xié)議格式的數(shù)據(jù),具體地,控制器12對CANopen協(xié)議格式的數(shù)據(jù)進行解碼,解碼出有效數(shù)據(jù)后再按照SPI協(xié)議格式的數(shù)據(jù)進行封裝,得到SPI協(xié)議格式的數(shù)據(jù)??刂破?2將轉(zhuǎn)換后的SPI協(xié)議格式的數(shù)據(jù)發(fā)送給SPI接口11,SPI接口11將SPI協(xié)議格式的數(shù)據(jù)發(fā)送給SPI總線14,完成一次CANopen總線15上的數(shù)據(jù)和SPI總線14上的數(shù)據(jù)的通信。
可選的,在上述實施例中,SPI接口11從SPI總線上得到SPI協(xié)議格式的數(shù)據(jù)后可以對SPI協(xié)議格式的數(shù)據(jù)進行一定的處理,例如,加上SPI接口自身的報頭標識等后再發(fā)送給控制器12。CANopen總線收發(fā)器13從CANopen總線15上得到CANopen協(xié)議格式的數(shù)據(jù)后可以對CANopen協(xié)議格式的數(shù)據(jù)進行一定的處理,例如,加上CANopen總線收發(fā)器13自身的報頭標識等后再發(fā)送給控制器12??刂破?2在進行SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)之間的相互轉(zhuǎn)換后,可以將轉(zhuǎn)換后的數(shù)據(jù)存儲在自身的緩存中,以備后續(xù)調(diào)用。控制器12在進行SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)的相互轉(zhuǎn)換時,可以先對CANopen網(wǎng)絡進行初始化,再通過特定的端口接收CANopen總線收發(fā)器13發(fā)送的CANopen協(xié)議格式的數(shù)據(jù),再將CANopen協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換成SPI協(xié)議格式的數(shù)據(jù)。
進一步地,CANopen總線上傳輸?shù)氖荂ANopen協(xié)議格式的雙線差分信號。CANopen協(xié)議格式的數(shù)據(jù)包括CANopen協(xié)議格式的數(shù)字信號和CANopen協(xié)議格式的雙線差分信號。CANopen總線收發(fā)器13還用于CANopen協(xié)議格 式的數(shù)字信號和CANopen協(xié)議格式的雙線差分信號之間的相互轉(zhuǎn)換。SPI協(xié)議格式的數(shù)據(jù)為數(shù)字信號,控制器12將SPI協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換為CANopen協(xié)議格式的數(shù)字信號,控制器12將CANopen協(xié)議格式的數(shù)字信號發(fā)送給CANopen總線收發(fā)器13,CANopen總線收發(fā)器13還用于將CANopen協(xié)議格式的數(shù)字信號轉(zhuǎn)換成CANopen協(xié)議格式的雙線差分信號?;蛘?,在CANopen總線15上的數(shù)據(jù)傳輸至SPI總線14的方向時,將CANopen協(xié)議格式的雙線差分信號轉(zhuǎn)換成CANopen協(xié)議格式的數(shù)字信號。
本實施例提供的SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān),通過SPI接口、控制器和CANopen總線收發(fā)器依次相連,控制器用于SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)之間的相互轉(zhuǎn)換,SPI接口用于在SPI總線與控制器之間傳輸SPI協(xié)議格式的數(shù)據(jù),CANopen總線收發(fā)器用于在CANopen總線與控制器之間傳輸CANopen協(xié)議格式的數(shù)據(jù),能使SPI協(xié)議和CANopen協(xié)議的之間相互轉(zhuǎn)換,實現(xiàn)了SPI協(xié)議的數(shù)據(jù)與CANopen協(xié)議的數(shù)據(jù)直接進行通信。
圖2為本發(fā)明SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)實施例二的結(jié)構(gòu)示意圖。在上述實施例一的基礎上,本實施例提供的SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān)還包括:
SPI光電隔離接口21,SPI光電隔離接口位于SPI接口11和控制器12之間,SPI光電隔離接口21用于濾除SPI協(xié)議格式的數(shù)據(jù)中的干擾信號;CANopen光電隔離接口22,CANopen光電隔離接口22位于CANopen總線收發(fā)器13和控制器12之間,CANopen光電隔離接口22用于濾除CANopen協(xié)議格式的數(shù)據(jù)中的干擾信號。
具體地,SPI光電隔離接口21和CANopen光電隔離接口22能對SPI協(xié)議格式的數(shù)據(jù)中的干擾信號和CANopen協(xié)議格式的數(shù)據(jù)中的干擾信號進行濾除,例如,隔離噪聲信號和干擾信號,以防止干擾信號對控制器12造成干擾和損壞。
在本實施例中,當需要從SPI總線14發(fā)送數(shù)據(jù)到CANopen總線15時:SPI接口11從SPI總線14上得到SPI協(xié)議格式的數(shù)據(jù)之后,SPI接口11將SPI協(xié)議格式的數(shù)據(jù)發(fā)送給SPI光電隔離接口21,SPI光電隔離接口21對SPI協(xié)議格式的數(shù)據(jù)中的干擾信號進行隔離后,將SPI協(xié)議格式的數(shù)據(jù)發(fā)送給控 制器12,控制器12將SPI協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換成CANopen協(xié)議格式的數(shù)字信號,控制器12將CANopen協(xié)議格式的數(shù)字信號發(fā)送給CANopen光電隔離接口22,CANopen光電隔離接口22對CANopen協(xié)議格式的數(shù)字信號中的干擾信號進行隔離后將CANopen協(xié)議格式的數(shù)字信號發(fā)送給CANopen總線收發(fā)器13,CANopen總線收發(fā)器13將CANopen協(xié)議格式的數(shù)字信號轉(zhuǎn)換成CANopen協(xié)議格式的雙線差分信號,發(fā)送給CANopen總線15,完成一次SPI總線14上的數(shù)據(jù)到CANopen總線15上的數(shù)據(jù)之間的通信。
當需要從CANopen總線15發(fā)送數(shù)據(jù)到SPI總線14時:CANopen總線收發(fā)器13從CANopen總線15上獲取CANopen協(xié)議格式的雙線差分信號,CANopen總線收發(fā)器13將CANopen協(xié)議格式的雙線差分信號轉(zhuǎn)換成CANopen協(xié)議格式的數(shù)字信號,發(fā)送給CANopen光電隔離接口22,CANopen光電隔離接口22對CANopen協(xié)議格式的數(shù)字信號中的干擾信號進行隔離后,將CANopen協(xié)議格式的數(shù)字信號發(fā)送給控制器12,控制器12將CANopen協(xié)議格式的數(shù)字信號轉(zhuǎn)換成SPI協(xié)議格式的數(shù)據(jù),發(fā)送給SPI光電隔離接口21,SPI光電隔離接口對SPI協(xié)議格式的數(shù)據(jù)中的干擾信號進行隔離,發(fā)送給SPI接口11,SPI接口11將SPI協(xié)議格式的數(shù)據(jù)發(fā)送給SPI總線14,完成一次CANopen總線15上的數(shù)據(jù)和SPI總線14上的數(shù)據(jù)的通信。
需要說明的是,本實施例中的SPI光電隔離接口21包括SPI光電隔離接口發(fā)送模塊和SPI光電隔離接收模塊。CANopen光電隔離接口22包括CANopen光電隔離接口發(fā)送模塊和CANopen光電隔離接口接收模塊。
本實施例提供的SPI協(xié)議與CANopen協(xié)議通信的網(wǎng)關(guān),通過設置SPI光電隔離接口,位于SPI接口和控制器之間,SPI光電隔離接口用于濾除SPI協(xié)議格式的數(shù)據(jù)中的干擾信號,CANopen光電隔離接口,位于CANopen總線收發(fā)器與控制器之間,CANopen光電隔離接口用于濾除CANopen協(xié)議格式的數(shù)據(jù)中的干擾信號,使得SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)中的干擾信號被濾除,提高了SPI協(xié)議格式的數(shù)據(jù)和CANopen協(xié)議格式的數(shù)據(jù)通信的可靠性。
進一步地,在上述任一實施例中,控制器為STM32F103,它還用于提供工作電源和監(jiān)視電壓。
具體地,STM32F103通過內(nèi)置的電壓調(diào)節(jié)器為自身提供工作電源,并且 通過內(nèi)置的可編程電壓檢測器監(jiān)控工作電源的電壓是否超過預先設置的電壓閾值。
本領域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。