本發(fā)明涉及一種可編程轉(zhuǎn)換邏輯的can-lonworks協(xié)議轉(zhuǎn)換器,還涉及一種can-lonworks協(xié)議轉(zhuǎn)換方法。
背景技術(shù):
can是iso國際標(biāo)準(zhǔn)化的串行通信協(xié)議,can總線以其抗干擾性好、成本低廉等特點,在汽車及工業(yè)測控等領(lǐng)域有廣泛應(yīng)用。can總線協(xié)議提供了osi參考模型三層協(xié)議(物理層、數(shù)據(jù)鏈路層和應(yīng)用層),并定義了物理層和數(shù)據(jù)鏈路層,應(yīng)用層協(xié)議根據(jù)應(yīng)用對象自行定義。can協(xié)議的數(shù)據(jù)幀格式如圖1,包括7個部分:幀起始(startofframe)、仲裁場(arbitrationfield)、控制場(controlfield)、數(shù)據(jù)場(datafield)、crc場(crcfield)、應(yīng)答場(ackfield)、幀結(jié)尾(endofframe)。其中幀起始、crc場、應(yīng)答場、幀結(jié)尾由can控制器自動完成,仲裁場、控制場、數(shù)據(jù)場有用戶根據(jù)應(yīng)用對象進(jìn)行設(shè)計。
仲裁場包括識別符和遠(yuǎn)程發(fā)送請求位。遠(yuǎn)程發(fā)送請求位區(qū)別幀類型,為0時表示幀類型為遠(yuǎn)程幀,為1時表示幀類型為數(shù)據(jù)幀;識別符在不同的幀格式中有所不同,標(biāo)準(zhǔn)幀格式的識別符為11bit,擴(kuò)展幀格式的識別符為29bit。
控制場共6bit,在不同的幀格式中意義不同。標(biāo)準(zhǔn)幀格式時,由4bit數(shù)據(jù)長度,1bitide和1bit保留位組成;拓展幀時,由4bit數(shù)據(jù)長度和2bit保留位組成。
數(shù)據(jù)場由發(fā)送數(shù)據(jù)組成,共8byte。
lonworks總線具有支持多種介質(zhì)、拓展能力強、開放性好等特點,在樓宇自動化及工業(yè)測控等領(lǐng)域占據(jù)相當(dāng)大的比例。lonworks技術(shù)的核心是神經(jīng)元芯片,它包括一個固化的高級通訊協(xié)議(lontalk)。lontalk協(xié)議提供了osi參考模型的全部七層協(xié)議,其中1-6層協(xié)議固化在神經(jīng)元芯片中,只有第七層應(yīng)用協(xié)議是根據(jù)應(yīng)用對象自行定義。lonworks節(jié)點之間的數(shù)據(jù)交換通過消息來完成,消息一般可被編碼為應(yīng)用消息(applicationmessage)、外來幀消息(foreignframemessage)和網(wǎng)絡(luò)變量(networkvariable)。應(yīng)用消息和外來幀消息的報文編碼分別如圖2、圖3所示,包括消息編碼和數(shù)據(jù);網(wǎng)絡(luò)變量的報文編碼如圖4所示,包括數(shù)據(jù)傳輸方向(dir)、網(wǎng)絡(luò)變量選擇器(selector)和數(shù)據(jù)。
無論是can總線還是lonworks總線,其應(yīng)用協(xié)議種類繁多?,F(xiàn)有的can-lonworks協(xié)議轉(zhuǎn)換器,其can總線和lonworks總線的數(shù)據(jù)轉(zhuǎn)換過程遵循的是固定單一的轉(zhuǎn)換邏輯,僅適用于兩種指定的總線應(yīng)用協(xié)議之間的轉(zhuǎn)換,無法適用于其它應(yīng)用協(xié)議轉(zhuǎn)換的場景。
can總線和lonworks總線之間的協(xié)議轉(zhuǎn)換,其核心是研究轉(zhuǎn)換邏輯,使兩種應(yīng)用協(xié)議按照轉(zhuǎn)換邏輯進(jìn)行轉(zhuǎn)換?,F(xiàn)有的協(xié)議轉(zhuǎn)換器關(guān)注的是兩種總線底層協(xié)議的轉(zhuǎn)換,僅進(jìn)行can協(xié)議和lontalk協(xié)議的轉(zhuǎn)換,并不考慮其應(yīng)用層協(xié)議的種類繁多且各不相同,未關(guān)注兩種協(xié)議之間的復(fù)雜的邏輯關(guān)系,即未對lontalk協(xié)議的格式(消息類型、數(shù)據(jù)等)與can協(xié)議的格式(幀類型、幀格式、識別符、數(shù)據(jù)等)之間復(fù)雜的邏輯關(guān)系進(jìn)行轉(zhuǎn)換,可認(rèn)為完成的僅僅是lontalk協(xié)議和can協(xié)議之間的透明傳輸,其轉(zhuǎn)換邏輯不支持修改。但協(xié)議轉(zhuǎn)換器在不同的應(yīng)用場合,需處理的lontalk的協(xié)議和can的協(xié)議也不盡相同,需要不同的轉(zhuǎn)換邏輯。如lontalk協(xié)議使用的消息類型可為應(yīng)用消息、外來幀消息和網(wǎng)絡(luò)變量中的之一,其消息編碼的長度也因消息類型而異;can幀類型可分遠(yuǎn)程幀和數(shù)據(jù)幀,幀格式可分標(biāo)準(zhǔn)幀和拓展幀,識別符的長度也因幀格式而異;因而,轉(zhuǎn)換邏輯所需解決的lontalk協(xié)議消息的消息編碼、數(shù)據(jù)與can協(xié)議的識別符、數(shù)據(jù)之間的轉(zhuǎn)換邏輯不一而同。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對上述現(xiàn)有技術(shù)提供一種可適用于不同應(yīng)用層協(xié)議的can總線網(wǎng)絡(luò)和lonworks總線網(wǎng)絡(luò)之間通信,并且使用者可根據(jù)can協(xié)議和lontalk協(xié)議的應(yīng)用需求,對協(xié)議轉(zhuǎn)換器的轉(zhuǎn)換邏輯進(jìn)行編程,使協(xié)議轉(zhuǎn)換器滿足應(yīng)用要求的可編程轉(zhuǎn)換邏輯的can-lonworks協(xié)議轉(zhuǎn)換器及協(xié)議轉(zhuǎn)換方法。
本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種可編程轉(zhuǎn)換邏輯的can-lonworks協(xié)議轉(zhuǎn)換器,其特征在于:包括can接口電路、mcu、神經(jīng)元芯片、lonworks接口電路、外部快閃存儲器、電源、eeprom以及上位機(jī)系統(tǒng),所述mcu上集成有can控制器以用于完成can數(shù)據(jù)的處理,所述mcu、神經(jīng)元芯片上均連接一個外部快閃存儲器,所述can接口電路分別與can總線、mcu通訊連接,所述mcu與所述神經(jīng)元芯片通訊連接,所述lonworks接口電路分別與lonworks總線、神經(jīng)元芯片通訊連接,所述電源分別與所述mcu、神經(jīng)元芯片通訊連接以為所述mcu、神經(jīng)元芯片供電,所述上位機(jī)系統(tǒng)與所述mcu通訊連接,所述上位機(jī)能夠顯示can總線數(shù)據(jù)和lonworks總線數(shù)據(jù),并能進(jìn)行轉(zhuǎn)換邏輯編程,所述eeprom與所述神經(jīng)元芯片通訊連接以存儲lontalk協(xié)議配置數(shù)據(jù)。
優(yōu)選地,所述can接口電路包括can收發(fā)器和隔離器,所述隔離器連接在所述can收發(fā)器和mcu之間。
優(yōu)選地,所述lonworks接口電路為lonworks收發(fā)器。
一種can-lonworks協(xié)議轉(zhuǎn)換方法,其特征在于包括以下步驟:
步驟一、上位機(jī)系統(tǒng)提供編程界面,用戶在上位機(jī)系統(tǒng)的編程界面對can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯以及l(fā)ontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯,進(jìn)而實現(xiàn)can和lontalk之間的轉(zhuǎn)換邏輯的編輯;
步驟二、通過上位機(jī)系統(tǒng)的操作,將can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯以及l(fā)ontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯下載到mcu,mcu將can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯以及l(fā)ontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯存儲至mcu內(nèi)部的快閃存儲器或者所述的外部快閃存儲器內(nèi);
步驟三、mcu接收并處理can接口電路傳送的can數(shù)據(jù)報文,對can數(shù)據(jù)報文按照can轉(zhuǎn)lontalk轉(zhuǎn)換邏輯進(jìn)行解析處理,進(jìn)而輸出can數(shù)據(jù)報文經(jīng)can轉(zhuǎn)lontalk轉(zhuǎn)換邏輯轉(zhuǎn)換后對應(yīng)的lontalk數(shù)據(jù)報文,然后將該lontalk數(shù)據(jù)報文發(fā)送到神經(jīng)元芯片中,進(jìn)而向lonworks接口輸出該lontalk數(shù)據(jù)報文;
lonworks總線經(jīng)lonworks接口電路向神經(jīng)元芯片傳送的lontalk數(shù)據(jù)報文被傳送至mcu中,mcu接收神經(jīng)元芯片的lontalk數(shù)據(jù)報文,解析并執(zhí)行l(wèi)ontalk轉(zhuǎn)can轉(zhuǎn)換邏輯,向can接口電路輸出轉(zhuǎn)換為can數(shù)據(jù)報文的lontalk數(shù)據(jù)報文;
如此can接口電路進(jìn)行can數(shù)據(jù)報文的收發(fā);lonworks接口電路進(jìn)行l(wèi)ontalk數(shù)據(jù)報文的收發(fā);
步驟四、通過can接口電路收發(fā)的can數(shù)據(jù)報文對應(yīng)的can總線數(shù)據(jù)以及通過lonworks接口電路收發(fā)的lontalk數(shù)據(jù)報文對應(yīng)的lontalk總線數(shù)據(jù)通過上位機(jī)系統(tǒng)進(jìn)行顯示。
can和lontalk之間轉(zhuǎn)換邏輯的編輯包括設(shè)置can協(xié)議的幀類型、幀格式與lontalk協(xié)議的消息類型之間的轉(zhuǎn)換邏輯。
作為改進(jìn),can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯方法為:編輯can協(xié)議的識別符、長度、數(shù)據(jù)的賦值表達(dá)式,所述賦值表達(dá)式包括lontalk協(xié)議的消息編碼或網(wǎng)絡(luò)變量選擇器、長度、數(shù)據(jù)以及操作符,所述操作符包括邏輯運算符和算術(shù)運算符。
作為改進(jìn),lontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯方法為:編輯lontalk協(xié)議的消息編碼或網(wǎng)絡(luò)變量選擇器、長度、數(shù)據(jù)的賦值表達(dá)式,所述賦值表達(dá)式包括can協(xié)議的識別符、長度、數(shù)據(jù)以及操作符,所述操作符包括邏輯運算符和算術(shù)運算符。
上位機(jī)系統(tǒng)顯示can總線數(shù)據(jù)和lontalk總線數(shù)據(jù)的過程為:mcu存儲最近一次從can接口電路接收的can數(shù)據(jù)報文,標(biāo)志為接收的can數(shù)據(jù)報文;
mcu存儲最近一次根據(jù)lontalk轉(zhuǎn)can轉(zhuǎn)換邏輯轉(zhuǎn)換而來的can數(shù)據(jù)報文,標(biāo)識為發(fā)送的can數(shù)據(jù)報文;
mcu存儲最近一次從神經(jīng)元芯片接收的lontalk數(shù)據(jù)報文,標(biāo)志為接收的lontalk數(shù)據(jù)報文;
mcu存儲最近一次根據(jù)can轉(zhuǎn)lontalk轉(zhuǎn)換邏輯轉(zhuǎn)換而來的lontalk數(shù)據(jù)報文,標(biāo)識為發(fā)送的lontalk數(shù)據(jù)報文;
上位機(jī)系統(tǒng)從mcu獲取接收的can數(shù)據(jù)報文、發(fā)送的can數(shù)據(jù)報文、接收的lontalk數(shù)據(jù)報文和發(fā)送的lontalk數(shù)據(jù)報文;
上位機(jī)系統(tǒng)在界面上實時更新顯示can總線數(shù)據(jù)和lonworks總線數(shù)據(jù),所述can總線數(shù)據(jù)包括接收的can數(shù)據(jù)報文、發(fā)送的can數(shù)據(jù)報文,所述lonworks總線數(shù)據(jù)包括接收的lontalk數(shù)據(jù)報文和發(fā)送的lontalk數(shù)據(jù)報文。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:本發(fā)明中的可編程轉(zhuǎn)換邏輯的can-lonworks協(xié)議轉(zhuǎn)換器及協(xié)議轉(zhuǎn)換方法可以通過上位機(jī)系統(tǒng)對can和lontalk之間的轉(zhuǎn)換邏輯進(jìn)行編程,進(jìn)而下載至mcu中使用,如此在can-lonworks協(xié)議轉(zhuǎn)換的不同應(yīng)用場景,通過對can和lontalk之間的轉(zhuǎn)換邏輯的適應(yīng)性編程來滿足應(yīng)用需求,使得can總線和lonworks總線的應(yīng)用范圍更廣。
附圖說明
圖1為can協(xié)議的數(shù)據(jù)幀格式圖。
圖2為lonworks節(jié)點之間的應(yīng)用消息報文結(jié)構(gòu)圖。
圖3為lonworks節(jié)點之間的外來幀消息報文結(jié)構(gòu)圖。
圖4為lonworks節(jié)點之間的網(wǎng)絡(luò)變量報文結(jié)構(gòu)圖。
圖5為本發(fā)明實施例中可編程轉(zhuǎn)換邏輯的can-lonworks協(xié)議轉(zhuǎn)換器的結(jié)構(gòu)框圖。
具體實施方式
以下結(jié)合附圖實施例對本發(fā)明作進(jìn)一步詳細(xì)描述。
如圖1所示,本實施例中的可編程轉(zhuǎn)換邏輯的can-lonworks協(xié)議轉(zhuǎn)換器,包括can接口電路1、mcu2、神經(jīng)元芯片3、lonworks接口電路4、外部快閃存儲器5、電源6、eeprom7以及上位機(jī)系統(tǒng)8。
其中mcu2上集成有can控制器以用于完成can數(shù)據(jù)的處理。
mcu2、神經(jīng)元芯片3上均連接一個外部快閃存儲器5。mcu2通過i2c或spi或sci的通訊方式與外部快閃存儲器5通信進(jìn)行數(shù)據(jù)讀寫。神經(jīng)元芯片3通過i2c或spi或sci的通訊方式與所述外部存儲器flash通信進(jìn)行數(shù)據(jù)讀寫。
can接口電路1分別與can總線、mcu2通訊連接,can接口電路1包括can收發(fā)器和隔離器,隔離器連接在can收發(fā)器和mcu2之間。
mcu2與神經(jīng)元芯片3通訊連接。mcu2通過i2c或spi或sci或uart通訊方式與神經(jīng)元芯片3通信完成數(shù)據(jù)交換。
lonworks接口電路4分別與lonworks總線、神經(jīng)元芯片3通訊連接,電源6分別與mcu2、神經(jīng)元芯片3通訊連接以為mcu2、神經(jīng)元芯片3供電。本實施例中l(wèi)onworks接口電路4為lonworks收發(fā)器。
上位機(jī)系統(tǒng)8與mcu2通訊連接,上位機(jī)能夠顯示can總線數(shù)據(jù)和lonworks總線數(shù)據(jù),并能進(jìn)行轉(zhuǎn)換邏輯編程。mcu2通過uart/usb/以太網(wǎng)通訊方式與上位機(jī)系統(tǒng)8通信完成人機(jī)交互。
eeprom7與神經(jīng)元芯片3通訊連接以存儲lontalk協(xié)議配置數(shù)據(jù)。神經(jīng)元芯片3通過i2c/spi/sci通訊方式與所述eeprom7通信進(jìn)行數(shù)據(jù)讀寫。
采用前述的can-lonworks協(xié)議轉(zhuǎn)換器進(jìn)行的can-lonworks協(xié)議轉(zhuǎn)換方法,包括以下步驟:
步驟一、上位機(jī)系統(tǒng)8提供編程界面,用戶在上位機(jī)系統(tǒng)8的編程界面對can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯以及l(fā)ontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯,進(jìn)而實現(xiàn)can和lontalk之間的轉(zhuǎn)換邏輯的編輯;
步驟二、通過上位機(jī)系統(tǒng)8的操作,將can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯以及l(fā)ontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯下載到mcu2,mcu2將can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯以及l(fā)ontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯存儲至mcu2內(nèi)部的快閃存儲器或者所述的外部快閃存儲器5內(nèi);
can和lontalk之間轉(zhuǎn)換邏輯的編輯包括設(shè)置can協(xié)議的幀類型、幀格式與lontalk協(xié)議的消息類型之間的轉(zhuǎn)換邏輯;
can轉(zhuǎn)lontalk的轉(zhuǎn)換邏輯方法為:編輯can協(xié)議的識別符、長度、數(shù)據(jù)的賦值表達(dá)式,所述賦值表達(dá)式包括lontalk協(xié)議的消息編碼或網(wǎng)絡(luò)變量選擇器、長度、數(shù)據(jù)以及操作符,所述操作符包括邏輯運算符和算術(shù)運算符;
lontalk轉(zhuǎn)can的轉(zhuǎn)換邏輯方法為:編輯lontalk協(xié)議的消息編碼或網(wǎng)絡(luò)變量選擇器、長度、數(shù)據(jù)的賦值表達(dá)式,所述賦值表達(dá)式包括can協(xié)議的識別符、長度、數(shù)據(jù)以及操作符,所述操作符包括邏輯運算符和算術(shù)運算符;
步驟三、mcu2接收并處理can接口電路1傳送的can數(shù)據(jù)報文,對can數(shù)據(jù)報文按照can轉(zhuǎn)lontalk轉(zhuǎn)換邏輯進(jìn)行解析處理,進(jìn)而輸出can數(shù)據(jù)報文經(jīng)can轉(zhuǎn)lontalk轉(zhuǎn)換邏輯轉(zhuǎn)換后對應(yīng)的lontalk數(shù)據(jù)報文,然后將該lontalk數(shù)據(jù)報文發(fā)送到神經(jīng)元芯片3中,進(jìn)而向lonworks接口輸出該lontalk數(shù)據(jù)報文;
lonworks總線經(jīng)lonworks接口電路4向神經(jīng)元芯片3傳送的lontalk數(shù)據(jù)報文被傳送至mcu2中,mcu2接收神經(jīng)元芯片3的lontalk數(shù)據(jù)報文,解析并執(zhí)行l(wèi)ontalk轉(zhuǎn)can轉(zhuǎn)換邏輯,向can接口電路1輸出轉(zhuǎn)換為can數(shù)據(jù)報文的lontalk數(shù)據(jù)報文;
如此can接口電路1進(jìn)行can數(shù)據(jù)報文的收發(fā);lonworks接口電路4進(jìn)行l(wèi)ontalk數(shù)據(jù)報文的收發(fā);
步驟四、通過can接口電路1收發(fā)的can數(shù)據(jù)報文對應(yīng)的can總線數(shù)據(jù)以及通過lonworks接口電路4收發(fā)的lontalk數(shù)據(jù)報文對應(yīng)的lontalk總線數(shù)據(jù)通過上位機(jī)系統(tǒng)8進(jìn)行顯示;
上位機(jī)系統(tǒng)8顯示can總線數(shù)據(jù)和lontalk總線數(shù)據(jù)的過程為:mcu2存儲最近一次從can接口電路1接收的can數(shù)據(jù)報文,標(biāo)志為接收的can數(shù)據(jù)報文;
mcu2存儲最近一次根據(jù)lontalk轉(zhuǎn)can轉(zhuǎn)換邏輯轉(zhuǎn)換而來的can數(shù)據(jù)報文,標(biāo)識為發(fā)送的can數(shù)據(jù)報文;
mcu2存儲最近一次從神經(jīng)元芯片3接收的lontalk數(shù)據(jù)報文,標(biāo)志為接收的lontalk數(shù)據(jù)報文;
mcu2存儲最近一次根據(jù)can轉(zhuǎn)lontalk轉(zhuǎn)換邏輯轉(zhuǎn)換而來的lontalk數(shù)據(jù)報文,標(biāo)識為發(fā)送的lontalk數(shù)據(jù)報文;
上位機(jī)系統(tǒng)8從mcu2獲取接收的can數(shù)據(jù)報文、發(fā)送的can數(shù)據(jù)報文、接收的lontalk數(shù)據(jù)報文和發(fā)送的lontalk數(shù)據(jù)報文;
上位機(jī)系統(tǒng)8在界面上實時更新顯示can總線數(shù)據(jù)和lonworks總線數(shù)據(jù),所述can總線數(shù)據(jù)包括接收的can數(shù)據(jù)報文、發(fā)送的can數(shù)據(jù)報文,所述lonworks總線數(shù)據(jù)包括接收的lontalk數(shù)據(jù)報文和發(fā)送的lontalk數(shù)據(jù)報文。
本發(fā)明中的可編程轉(zhuǎn)換邏輯的can-lonworks協(xié)議轉(zhuǎn)換器及協(xié)議轉(zhuǎn)換方法可以通過上位機(jī)系統(tǒng)8對can和lontalk之間的轉(zhuǎn)換邏輯進(jìn)行編程,進(jìn)而下載至mcu2中使用,如此在can-lonworks協(xié)議轉(zhuǎn)換的不同應(yīng)用場景,通過對can和lontalk之間的轉(zhuǎn)換邏輯的適應(yīng)性編程來滿足應(yīng)用需求,使得can總線和lonworks總線的應(yīng)用范圍更廣。