国产精品国产三级国产专不电影_亚洲国产原创私拍精品_2020亚洲国产精品无码剧情_A级国产乱理论片在线观看 _国产日韩Av无码免费一区二区

USB-LON接口卡技術(shù)方案淺談

    LonWorks總線(xiàn)技術(shù)在開(kāi)發(fā)與應(yīng)用中最常用的接口設(shè)備為USB-LON適配器,簡(jiǎn)稱(chēng)LON卡。本文介紹的是如何設(shè)計(jì)開(kāi)發(fā)一種成本低、可靠性好、通信能力強(qiáng)的LON卡。

    LonWorks技術(shù)是美國(guó)Echelon公司于上世紀(jì)90年代初推出的一種現(xiàn)場(chǎng)總線(xiàn)技術(shù)?LON(Local Operating Network)的意思為局部操作網(wǎng)絡(luò),它是用于開(kāi)發(fā)監(jiān)控網(wǎng)絡(luò)系統(tǒng)的一個(gè)完整的技術(shù)平臺(tái),LonWorks現(xiàn)場(chǎng)總線(xiàn)在網(wǎng)絡(luò)通訊方面具有突出的優(yōu)點(diǎn),作為現(xiàn)場(chǎng)總線(xiàn)中的佼佼者在國(guó)內(nèi)各個(gè)領(lǐng)域的測(cè)控系統(tǒng)中廣泛流行?

    通用串行總線(xiàn)(Universal Serial Bus,USB)是一種快速?靈活的總線(xiàn)接口?與其它通信接口相比,USB總線(xiàn)接口最大的特點(diǎn)是易于使用,這主要表現(xiàn)在成本低?適用于多種設(shè)備?支持熱插拔等方面,并且所有的配置過(guò)程都由系統(tǒng)自動(dòng)完成,無(wú)需用戶(hù)干預(yù)?目前,市場(chǎng)上供應(yīng)的USB控制器主要有兩種:USB接口的單片機(jī)(MCU)和純粹的USB接口芯片?本文采用Cypress公司推出的帶智能USB接口的EZ-USB單片機(jī)?該單片機(jī)極大地降低了USB外設(shè)的開(kāi)發(fā)難度,PC機(jī)外設(shè)的制造商提供了一個(gè)性能優(yōu)良?價(jià)格較低的設(shè)計(jì)方案?采用USB接口設(shè)計(jì)開(kāi)發(fā)的LON網(wǎng)互聯(lián)適配器很好地解決了傳統(tǒng)適配器由于RS-232PC/Laptop互聯(lián)而造成的速度上的瓶頸?

一、LON卡系統(tǒng)組成及工作原理

(1)LON卡硬件系統(tǒng)組成

    LON卡LON網(wǎng)與PC/Laptop的接口,在通信過(guò)程中起著關(guān)鍵的作用,它既完成了LON網(wǎng)與PC/Laptop的互聯(lián),又實(shí)現(xiàn)了數(shù)據(jù)的交換?LON卡作為LON網(wǎng)的一個(gè)特殊的網(wǎng)絡(luò)節(jié)點(diǎn)——通信處理器,能按照LonTalk協(xié)議與LonWorks總線(xiàn)上所有分布在現(xiàn)場(chǎng)的智能節(jié)點(diǎn)進(jìn)行對(duì)等的數(shù)據(jù)通信,起到上傳下達(dá)的橋梁作用?當(dāng)現(xiàn)場(chǎng)的測(cè)控設(shè)備有數(shù)據(jù)送到LonWorks網(wǎng)絡(luò)上時(shí),互聯(lián)適配器負(fù)責(zé)把所有發(fā)送給它的信息接收下來(lái),將測(cè)控設(shè)備發(fā)送來(lái)的LonTalk顯式報(bào)文重新打包裝幀,PC/Laptop發(fā)送?同時(shí),它將從PC/Laptop接收來(lái)的已解析的數(shù)據(jù)按LonWorks現(xiàn)場(chǎng)總線(xiàn)通信協(xié)議構(gòu)造LonTalk顯式報(bào)文,發(fā)送給LonWorks網(wǎng)上的測(cè)控設(shè)備?

   相對(duì)USB系統(tǒng)而言,PC/LaptopUSB主機(jī),互聯(lián)適配器只是USB外部設(shè)備?在整個(gè)USB系統(tǒng)中只有一個(gè)主控制器,即主機(jī)(PC/Laptop),主機(jī)是總線(xiàn)控制者,USB設(shè)備響應(yīng)主機(jī)請(qǐng)求?系統(tǒng)軟件設(shè)計(jì)部分也是針對(duì)主機(jī)和外部設(shè)備這兩部分展開(kāi)的?

(2)LON卡工作原理

   LON卡中采用Neuron芯片預(yù)定義的并口I/O應(yīng)用模式實(shí)現(xiàn)雙CPU的通信,并行口的速率可達(dá)3.3Mbps,實(shí)現(xiàn)了高數(shù)據(jù)速率?

    并行I/O應(yīng)用模式下利用Neuron芯片的11個(gè)I/O口進(jìn)行通信,其中,IO0~IO7為雙向數(shù)據(jù)線(xiàn),IO8~IO10為控制信號(hào)線(xiàn),借助令牌傳遞/握手協(xié)議,并行I/O口可用來(lái)外接處理器,實(shí)現(xiàn)Neuron芯片與外接各類(lèi)微處理器之間的雙向數(shù)據(jù)通信,在這里采用EZ-USB單片機(jī)與Neuron芯片互連?主機(jī)PC/Laptop控制USB外部設(shè)備,通過(guò)LON卡LON網(wǎng)各現(xiàn)場(chǎng)節(jié)點(diǎn)通信,其實(shí)質(zhì)就是LON卡EZ-USB單片機(jī)與Neuron芯片之間的通信?

    并行口的工作方式有三種,即主模式?從A模式?從B模式?不同的模式下,IO8~IO10這三根控制信號(hào)線(xiàn)的意義不同,這里應(yīng)用的是從A模式?在從A模式中,認(rèn)為Neuron芯片為從CPU,EZ-USB單片機(jī)為主CPU,CPU和從CPU之間的數(shù)據(jù)傳輸通過(guò)虛擬的寫(xiě)令牌傳遞協(xié)議(Virtual Write Token-Passing Protocol)得以實(shí)現(xiàn)?主CPU和從CPU交替地獲得寫(xiě)令牌(Write Token),只有擁有寫(xiě)令牌的一方可以寫(xiě)數(shù)據(jù)(不超過(guò)255個(gè)字節(jié)),或者不寫(xiě)任何數(shù)據(jù)傳送一個(gè)空令牌?傳送的數(shù)據(jù)要遵從一定的格式,即在要傳送的數(shù)據(jù)前面加上命令碼和傳送的數(shù)據(jù)長(zhǎng)度,命令碼有CMD_XFER(寫(xiě)數(shù)據(jù))?CMD_NULL(傳遞空令牌)?CMD_RESYNC(要求從機(jī)同步)?CMD_ACKSYNC(確認(rèn)同步)四種,最后以EOM字節(jié)結(jié)束?在從A方式中,整個(gè)握手/應(yīng)答協(xié)議以及數(shù)據(jù)傳送的實(shí)現(xiàn)過(guò)程是自動(dòng)完成的?在通信以前,CPU和從CPU之間先建立握手信號(hào),HS信號(hào)有效(這由3150的固件自動(dòng)實(shí)現(xiàn))?然后,CPU再送一個(gè)CMD_RESYNC命令,要求從CPU同步,而從CPU接收到這個(gè)信號(hào)以后,則發(fā)送CMD_ACKSYNC,表示已經(jīng)同步?可以通信了?同步以后,虛寫(xiě)令牌就在主CPU和從CPU之間無(wú)限地?交替地傳遞,擁有虛寫(xiě)令牌的一方就可以向數(shù)據(jù)總線(xiàn)上寫(xiě)數(shù)據(jù),即主CPU可以往從CPU寫(xiě)數(shù)據(jù),從機(jī)也可以將數(shù)據(jù)傳往主CPU?

    需要特別說(shuō)明的是,Neuron芯片的握手及令牌傳遞的實(shí)現(xiàn)是自動(dòng)的,但是對(duì)于非Neuron芯片的微處理器(EZ-USB),就要求編程人員通過(guò)編程使非Neuron芯片的微處理器能夠執(zhí)行Neuron芯片的握手/令牌傳遞算法,也即是復(fù)制Neuron芯片的行為,從而實(shí)現(xiàn)雙方的通信?

二、LON卡硬件設(shè)計(jì)

    LON卡主要由神經(jīng)元芯片和EZ-USB單片機(jī)組成?

     神經(jīng)元芯片(Neuron Chip)LonWorks技術(shù)的核心? 芯片中含有Lontalk協(xié)議的固態(tài)軟件(簡(jiǎn)稱(chēng)固件),使其能可靠地通信?神經(jīng)元芯片主要包含TMPN3150TMPN3120兩大系列,由日本東芝公司生產(chǎn)?TMPN3150支持外部存儲(chǔ)器,適合更為復(fù)雜的應(yīng)用,TMPN3120則不支持外部存儲(chǔ)器,它本身帶ROM?所以,LON卡的設(shè)計(jì)中選用的是TMPN3150,該芯片內(nèi)有三個(gè)微處理器,MAC處理器?網(wǎng)絡(luò)處理器和應(yīng)用處理器?對(duì)神經(jīng)元芯片進(jìn)行外圍電路的設(shè)計(jì)和擴(kuò)展,使之成為LonWorks網(wǎng)上的一個(gè)特殊的LON節(jié)點(diǎn),這樣它不僅可以與LonWorks網(wǎng)絡(luò)上的LON節(jié)點(diǎn)進(jìn)行通信,還可以作為適配器的協(xié)通信處理器?

    TMPN3150片內(nèi)存儲(chǔ)器的地址范圍是E800H~FFFFH,包括2KBRAM?0.5KBEEPROM?2.5KB保留空間和1KB的用于存儲(chǔ)器映象I/O的空間?TMPN315016根地址線(xiàn),可尋址64K空間,可以外接存儲(chǔ)器,RAM?ROM?EEPROMFLASH等?由于開(kāi)發(fā)Neuron芯片時(shí)采用Neuron C語(yǔ)言,內(nèi)存占用大,另外其作為通信協(xié)議處理器使用要求有大量的數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)交換,而僅僅利用3150內(nèi)部的2KRAM空間是遠(yuǎn)遠(yuǎn)不夠的,因此擴(kuò)展了外部存儲(chǔ)器FLASHRAM?FLASH選用AT29C512,其地址范圍是0000H~7FFFH;RAM選用IS61C256AH-15N,其地址范圍是8000H~DFFFH?AT29C512IS61C256AH-15N的地址范圍由Neuron芯片的地址線(xiàn)和控制線(xiàn)E及相關(guān)的邏輯門(mén)電路來(lái)確定?神經(jīng)元芯片的晶振為10MHz?Neuron芯片與LON的網(wǎng)絡(luò)介質(zhì)的接口采用上海工業(yè)自動(dòng)化儀表研究所生產(chǎn)的雙絞線(xiàn)收發(fā)器?收發(fā)器按其傳輸速率可以分為TPT/XF-78(傳輸速率為78kbps)?TPT/XF-1250(傳輸速率為1.25Mkbps)兩種型號(hào),用于滿(mǎn)足不同的通訊要求?這里選用的是TPT/XF-1250?

    EZ-USB單片機(jī)采用的是EZ-USB2100系列中具有44個(gè)引腳的AN2131S?AN2131S是互聯(lián)適配器的主CPU,利用其I/O端口足以完成所需的功能?EZ-USB芯片中包含內(nèi)部程序/數(shù)據(jù)RAM8KB?熏不再需要ROM或其它非易失性存儲(chǔ)器?主CPU與輔CPU的連接很簡(jiǎn)單,即與輔CPU11個(gè)I/O口進(jìn)行連接?單片機(jī)的PB口接上輔CPUIO0~IO7,為兩個(gè)CPU的并行通訊數(shù)據(jù)端口?單片機(jī)的PC0~PC2分別接神經(jīng)元芯片IO8~IO10,完成控制功能?AN2131S再通過(guò)引腳USBD+USBD-與主機(jī)PC/Laptop互聯(lián)?

三、LON卡軟件設(shè)計(jì)

    LON卡的軟件程序設(shè)計(jì)分為兩大塊?一塊為對(duì)主機(jī)PC/Laptop程序的軟件設(shè)計(jì),另一塊為對(duì)外圍USB設(shè)備——互聯(lián)適配器程序的軟件設(shè)計(jì)?

(1)USB主機(jī)的軟件設(shè)計(jì)

    主機(jī)的軟件設(shè)計(jì)主要包括兩部分:一是基于USBLON卡的驅(qū)動(dòng)程序?如圖3所示,USB通信使用分層驅(qū)動(dòng)模型,每層處理一部分通信過(guò)程,這樣可以使不同設(shè)備在一些任務(wù)上使用相同的驅(qū)動(dòng)?這里使用Microsoft WDM DDKMicrosoft Visual C++6.0來(lái)完成?

     二是USB通信程序和用戶(hù)服務(wù)程序?用戶(hù)服務(wù)程序通過(guò)USB通信程序與系統(tǒng)USBDI(USB Device Interface)通信,由系統(tǒng)完成USB協(xié)議的處理與數(shù)據(jù)傳輸?從邏輯上講,USB數(shù)據(jù)的傳輸是通過(guò)管道進(jìn)行的?USB系統(tǒng)軟件通過(guò)缺省管道(與端點(diǎn)0相對(duì)應(yīng))管理設(shè)備,設(shè)備驅(qū)動(dòng)程序通過(guò)其它的管道來(lái)管理設(shè)備的功能接口?為了滿(mǎn)足不同外設(shè)和用戶(hù)的要求,USB提供了四種傳輸方式:控制傳輸?同步傳輸?中斷傳輸和塊傳輸?本系統(tǒng)使用的是塊傳輸?EZ-USB提供了16個(gè)用于塊傳輸?shù)亩它c(diǎn),包括7個(gè)IN端點(diǎn)(EP1_IN~EP7_IN)7個(gè)OUT端點(diǎn)(EP1_ OUT~EP7_OUT)?每個(gè)端點(diǎn)都有一個(gè)64字節(jié)的緩沖區(qū)?塊端點(diǎn)無(wú)方向控制,一個(gè)端點(diǎn)地址對(duì)應(yīng)一個(gè)方向,所以端點(diǎn)IN1的地址不同于端點(diǎn)OUT1的地址,本適配器就采用這對(duì)端點(diǎn)傳輸數(shù)據(jù)?其中,端點(diǎn)0USB系統(tǒng)中有特定含義,它是EZ-USB芯片中唯一的控制端點(diǎn),用于傳輸控制信息?

    開(kāi)發(fā)可以訪問(wèn)LON卡的應(yīng)用程序,可使用任何一個(gè)支持win32函數(shù)CreateFile()DeviceIoControl()的編譯器?首先調(diào)用CreateFile()函數(shù),來(lái)取得訪問(wèn)設(shè)備驅(qū)動(dòng)程序的句柄,CreateFile()使用設(shè)備的鏈接符作為函數(shù)參數(shù)?然后調(diào)用DeviceIoControl()函數(shù)來(lái)提交I/O控制碼,并且為CreateFile()函數(shù)返回的設(shè)備句柄設(shè)置 I/O緩沖區(qū)?最后,還要調(diào)用CloseHandle()關(guān)閉設(shè)備?其中,最重要的函數(shù)是DeviceIoControl(),它的功能是完成應(yīng)用程序與驅(qū)動(dòng)程序之間數(shù)據(jù)的交換?DeviceIoControl()函數(shù)的具體格式為:

BOOL DeviceIoControl(

HANDLE hDevice, //外設(shè)句柄

DWORD dwIoControlCode, //I/O操作控制代碼

LPVOID IpInBuffer, //輸入緩沖區(qū)指針

DWORD nInBufferSize, //輸入緩沖區(qū)大小

LPVOID IpOutBuffer, //輸出緩沖區(qū)指針

DWORD nOutBufferSize, //輸出緩沖區(qū)大小

LPDWORD IpBytesReturned, //實(shí)際返回的字節(jié)數(shù)

LPOVERLAPPED IpOverLapped //用于異步操作的結(jié)構(gòu)指針

);

(2)外圍USB設(shè)備——LON卡的軟件設(shè)計(jì)

    這一部分的軟件編寫(xiě)也包括兩部分?一部分為對(duì)主CPU(EZ-USB)的編寫(xiě)?USB內(nèi)核功能強(qiáng)大,可以自動(dòng)完成USB協(xié)議的轉(zhuǎn)換,從而大大簡(jiǎn)化了8051的代碼?采用C51語(yǔ)言,并使用EZ-USB的固件函數(shù)庫(kù)和程序框架?框架完成了一個(gè)簡(jiǎn)單的任務(wù)循環(huán),用戶(hù)函數(shù)TD_Poll()能夠?qū)崿F(xiàn)USB外設(shè)的功能?因?yàn)閺?/span>CPU(Neuron Chip)的并行模式是芯片內(nèi)部定義的,遵從虛擬的寫(xiě)令牌傳遞協(xié)議,所以需要編寫(xiě)芯片EZ-USB的程序來(lái)模擬3150I/O并行口的從A模式?所以TD_Poll()函數(shù)主要完成四項(xiàng)工作:與輔CPU同步?握手?令牌的傳送以及并行口數(shù)據(jù)的讀寫(xiě)?

    另一部分為從CPU的軟件程序的編寫(xiě),用神經(jīng)元的編程語(yǔ)言即Neuron C語(yǔ)言完成?從CPU主要完成將并口得到的報(bào)文解析,再利用Neuron C的消息傳送機(jī)制,將解析的消息傳送給適配器下層的應(yīng)用節(jié)點(diǎn);同時(shí),還將從適配器下層的應(yīng)用節(jié)點(diǎn)以消息形式傳送上來(lái)的數(shù)據(jù)或信息構(gòu)造成EZ-USB可識(shí)別的報(bào)文,通過(guò)并口傳送給EZ-USB?由從機(jī)內(nèi)部定義的與并行I/O對(duì)象有關(guān)的函數(shù)主要有:

io_in_ready():當(dāng)并口上有數(shù)據(jù)傳送到來(lái)時(shí),此函數(shù)值為TRUE?此時(shí)可調(diào)用io_in??雪函數(shù)接收數(shù)據(jù)?

io_out_request():此函數(shù)用來(lái)向并口總線(xiàn)發(fā)出請(qǐng)求以獲取令牌?

io_out_ready():當(dāng)并口總線(xiàn)處于可寫(xiě)狀態(tài)即3150獲取到令牌后,此函數(shù)值為TRUE,此時(shí)可調(diào)用io_out()函數(shù)將數(shù)據(jù)發(fā)送到并口?在調(diào)用此函數(shù)之前應(yīng)先調(diào)用io_out_request()?

io_in(): 將并口上的數(shù)據(jù)接收到緩沖區(qū)?

io_out():將緩沖區(qū)的數(shù)據(jù)發(fā)送到并口總線(xiàn)上?

    本文設(shè)計(jì)的LON卡在結(jié)構(gòu)上采用雙CPU設(shè)計(jì),具有結(jié)構(gòu)簡(jiǎn)單?小型化的特點(diǎn),非常適合用于測(cè)控系統(tǒng)?在軟件設(shè)計(jì)中,突出模塊的靈活性,并且USB內(nèi)核可以自動(dòng)完成USB協(xié)議的轉(zhuǎn)換,大大簡(jiǎn)化了8051的代碼?總之,LON卡具有組態(tài)靈活?成本低?可靠性好?通信能力強(qiáng)等優(yōu)點(diǎn),在工業(yè)控制?樓宇自動(dòng)化等諸多領(lǐng)域有廣闊的應(yīng)用前景?


    版權(quán)所有:南京海思自動(dòng)化系統(tǒng)有限公司    網(wǎng)站地圖:Sitemap        蘇ICP備13027346號(hào)-1
電話(huà):025-52804590 52804690 地址:南京市白下高新產(chǎn)業(yè)園區(qū)永豐大道8號(hào)B2-503室 網(wǎng)址: www.gprbr.cn
版權(quán)所有:南京海思自動(dòng)化系統(tǒng)有限公司
總機(jī):025-52804590 / 52804690
市場(chǎng)部:8008分機(jī)  售后部:8006分機(jī)
手機(jī):18905184663(市場(chǎng))  郵箱:highsys@163.com
南京市白下高新產(chǎn)業(yè)園區(qū)永豐大道8號(hào)B2-503室