互聯(lián)適配器是LON網(wǎng)與PC/Laptop的接口,在通信過程中起著關(guān)鍵的作用,它既完成了LON網(wǎng)與PC/Laptop的互聯(lián),又實現(xiàn)了數(shù)據(jù)的交換。互聯(lián)適配器作為LON網(wǎng)的一個特殊的網(wǎng)絡(luò)節(jié)點——通信處理器,能按照LonTalk?yún)f(xié)議與LonWorks總線上所有分布在現(xiàn)場的智能節(jié)點進行對等的數(shù)據(jù)通信,起到上傳下達的橋梁作用。當(dāng)現(xiàn)場的測控設(shè)備有數(shù)據(jù)送到LonWorks網(wǎng)絡(luò)上時,互聯(lián)適配器負責(zé)把所有發(fā)送給它的信息接收下來,將測控設(shè)備發(fā)送來的LonTalk顯式報文重新打包裝幀,向PC/Laptop發(fā)送。同時,它將從PC/Laptop接收來的已解析的數(shù)據(jù)按LonWorks現(xiàn)場總線通信協(xié)議構(gòu)造LonTalk顯式報文,發(fā)送給LonWorks網(wǎng)上的測控設(shè)備。
相對USB系統(tǒng)而言,PC/Laptop是USB主機,互聯(lián)適配器只是USB外部設(shè)備。在整個USB系統(tǒng)中只有一個主控制器,即主機(PC/Laptop),主機是總線控制者,USB設(shè)備響應(yīng)主機請求。系統(tǒng)軟件設(shè)計部分也是針對主機和外部設(shè)備這兩部分展開的。
1.2 工作原理
互聯(lián)適配器中采用Neuron芯片預(yù)定義的并口I/O應(yīng)用模式實現(xiàn)雙CPU的通信,并行口的速率可達3.3Mbps,實現(xiàn)了高數(shù)據(jù)速率。
并行I/O應(yīng)用模式下利用Neuron芯片的11個I/O口進行通信,其中,IO0~IO7為雙向數(shù)據(jù)線,IO8~IO10為控制信號線,借助令牌傳遞/握手協(xié)議,并行I/O口可用來外接處理器,實現(xiàn)Neuron芯片與外接各類微處理器之間的雙向數(shù)據(jù)通信,在這里采用EZ-USB單片機與Neuron芯片互連。主機PC/Laptop控制USB外部設(shè)備,通過互聯(lián)適配器與LON網(wǎng)各現(xiàn)場節(jié)點通信,其實質(zhì)就是互聯(lián)適配器中EZ-USB單片機與Neuron芯片之間的通信。
并行口的工作方式有三種,即主模式、從A模式、從B模式。不同的模式下,IO8~IO10這三根控制信號線的意義不同,這里應(yīng)用的是從A模式。在從A模式中,認為Neuron芯片為從CPU,EZ-USB單片機為主CPU,主CPU和從CPU之間的數(shù)據(jù)傳輸通過虛擬的寫令牌傳遞協(xié)議(Virtual Write Token-Passing Protocol)得以實現(xiàn)。主CPU和從CPU交替地獲得寫令牌(Write Token),只有擁有寫令牌的一方可以寫數(shù)據(jù)(不超過255個字節(jié)),或者不寫任何數(shù)據(jù)傳送一個空令牌。傳送的數(shù)據(jù)要遵從一定的格式,即在要傳送的數(shù)據(jù)前面加上命令碼和傳送的數(shù)據(jù)長度,命令碼有CMD_XFER(寫數(shù)據(jù))、CMD_NULL(傳遞空令牌)、CMD_RESYNC(要求從機同步)、CMD_ACKSYNC(確認同步)四種,最后以EOM字節(jié)結(jié)束。在從A方式中,整個握手/應(yīng)答協(xié)議以及數(shù)據(jù)傳送的實現(xiàn)過程是自動完成的。在通信以前,主CPU和從CPU之間先建立握手信號,即HS信號有效(這由3150的固件自動實現(xiàn))。然后,主CPU再送一個CMD_RESYNC命令,要求從CPU同步,而從CPU接收到這個信號以后,則發(fā)送CMD_ACKSYNC,表示已經(jīng)同步、可以通信了。同步以后,虛寫令牌就在主CPU和從CPU之間無限地、交替地傳遞,擁有虛寫令牌的一方就可以向數(shù)據(jù)總線上寫數(shù)據(jù),即主CPU可以往從CPU寫數(shù)據(jù),從機也可以將數(shù)據(jù)傳往主CPU。
需要特別說明的是,Neuron芯片的握手及令牌傳遞的實現(xiàn)是自動的,但是對于非Neuron芯片的微處理器(EZ-USB),就要求編程人員通過編程使非Neuron芯片的微處理器能夠執(zhí)行Neuron芯片的握手/令牌傳遞算法,也即是復(fù)制Neuron芯片的行為,從而實現(xiàn)雙方的通信。
圖2 互聯(lián)適配器硬件結(jié)構(gòu)框圖
2 硬件設(shè)計
互聯(lián)適配器的結(jié)構(gòu)框圖如圖2所示,主要由神經(jīng)元芯片和EZ-USB單片機組成。
神經(jīng)元芯片(Neuron Chip)是LonWorks技術(shù)的核心?熏 芯片中含有Lontalk?yún)f(xié)議的固態(tài)軟件(簡稱固件),使其能可靠地通信。神經(jīng)元芯片主要包含TMPN3150和TMPN3120兩大系列,由日本東芝公司生產(chǎn)。TMPN3150支持外部存儲器,適合更為復(fù)雜的應(yīng)用,而TMPN3120則不支持外部存儲器,它本身帶ROM。所以,在互聯(lián)適配器的設(shè)計中選用的是TMPN3150,該芯片內(nèi)有三個微處理器,即MAC處理器、網(wǎng)絡(luò)處理器和應(yīng)用處理器。對神經(jīng)元芯片進行外圍電路的設(shè)計和擴展,使之成為LonWorks網(wǎng)上的一個特殊的LON節(jié)點,這樣它不僅可以與LonWorks網(wǎng)絡(luò)上的LON節(jié)點進行通信,還可以作為適配器的協(xié)通信處理器。
TMPN3150片內(nèi)存儲器的地址范圍是E800H~FFFFH,包括2KB的RAM、0.5KB的EEPROM、2.5KB保留空間和1KB的用于存儲器映象I/O的空間。TMPN3150有16根地址線,可尋址64K空間,可以外接存儲器,如RAM、ROM、EEPROM或FLASH等。由于開發(fā)Neuron芯片時采用Neuron C語言,內(nèi)存占用大,另外其作為通信協(xié)議處理器使用要求有大量的數(shù)據(jù)緩沖區(qū)進行數(shù)據(jù)交換,而僅僅利用3150內(nèi)部的2KRAM空間是遠遠不夠的,因此擴展了外部存儲器FLASH和RAM。FLASH選用AT29C512,其地址范圍是0000H~7FFFH;RAM選用IS61C256AH-15N,其地址范圍是8000H~DFFFH。AT29C512和IS61C256AH-15N的地址范圍由Neuron芯片的地址線和控制線E及相關(guān)的邏輯門電路來確定。神經(jīng)元芯片的晶振為10MHz。Neuron芯片與LON的網(wǎng)絡(luò)介質(zhì)的接口采用上海工業(yè)自動化儀表研究所生產(chǎn)的雙絞線收發(fā)器。收發(fā)器按其傳輸速率可以分為TPT/XF-78(傳輸速率為78kbps)、TPT/XF-1250(傳輸速率為1.25Mkbps)兩種型號,用于滿足不同的通訊要求。這里選用的是TPT/XF-1250。
EZ-USB單片機采用的是EZ-USB2100系列中具有44個引腳的AN2131S。AN2131S是互聯(lián)適配器的主CPU,利用其I/O端口足以完成所需的功能。EZ-USB芯片中包含內(nèi)部程序/數(shù)據(jù)RAM共8KB?熏不再需要ROM或其它非易失性存儲器。主CPU與輔CPU的連接很簡單,即與輔CPU的11個I/O口進行連接。單片機的PB口接上輔CPU的IO0~IO7,為兩個CPU的并行通訊數(shù)據(jù)端口。單片機的PC0~PC2分別接神經(jīng)元芯片IO8~IO10,完成控制功能。AN2131S再通過引腳USBD+和USBD-與主機PC/Laptop互聯(lián)。
3 軟件設(shè)計
適配器的軟件程序設(shè)計分為兩大塊。一塊為對主機PC/Laptop程序的軟件設(shè)計,另一塊為對外圍USB設(shè)備——互聯(lián)適配器程序的軟件設(shè)計。
3.1 USB主機的軟件設(shè)計





