湖北省黃岡市質(zhì)量技術(shù)監(jiān)督局 徐 進(jìn)湖北工業(yè)大學(xué)機(jī)械工程學(xué)院 朱劍雄
USB2.0控制器CY7C68013在lon總線技術(shù)中的應(yīng)用
湖北省黃岡市質(zhì)量技術(shù)監(jiān)督局 徐 進(jìn)湖北工業(yè)大學(xué)機(jī)械工程學(xué)院 朱劍雄
針對(duì)工業(yè)現(xiàn)場(chǎng)對(duì)高性能的便攜式(主要針對(duì)移動(dòng)系統(tǒng))數(shù)據(jù)通信的要求,研制了LON總線的USB2.0接口卡。由于采用USB2.0接口,能夠克服以往使用RS-232串口與便攜設(shè)備通信實(shí)時(shí)性不夠的弱點(diǎn)。USB2.0協(xié)議提供480Mb/s的傳輸速度,向下完全兼容流行的USB1.1協(xié)議。接口卡主要由Toshiba公司生產(chǎn)的TMPN3150與Cypress公司推出的USB2.0控制器CY7C68013組成。3150完成與LON總線的通信而CY7C68013則具有USB2.0的完整解決方案,兩芯片的通信采用并口通信方式。
LON 總線;USB2.0接口;TMPN3150;CY7C68013;并口通信
Lon Works總線是由美國(guó)Echelon公司推出的一種現(xiàn)場(chǎng)總線技術(shù),由于Lon Works控制網(wǎng)絡(luò)的開放性、高速性、互操作性及其對(duì)現(xiàn)場(chǎng)環(huán)境的適應(yīng)性,它已廣泛應(yīng)用于樓宇自動(dòng)化、家庭自動(dòng)化、保安系統(tǒng)、辦公設(shè)備、交通運(yùn)輸、工業(yè)過程控制等行業(yè)。Lon總線的現(xiàn)場(chǎng)節(jié)點(diǎn)間采用的Lon Talk協(xié)議,當(dāng)工程師使用便攜設(shè)備對(duì)現(xiàn)場(chǎng)節(jié)點(diǎn)進(jìn)行檢測(cè)或進(jìn)行現(xiàn)場(chǎng)數(shù)據(jù)采集時(shí)往往只能使用RS232串口。眾所周知,RS232的傳輸速度最高只能達(dá)到9600kbps,這對(duì)實(shí)時(shí)性要求很高的現(xiàn)場(chǎng)數(shù)據(jù)采集來說遠(yuǎn)遠(yuǎn)不能滿足要求。針對(duì)這一情況我們開發(fā)研制了Lon總線的USB2.0接口卡。該卡提供的USB2.0接口使得數(shù)據(jù)的傳輸速度能提高到480Mbps,并且向下完全兼容流行的USB1.1協(xié)議。
USB協(xié)議的2.0版本于2000年4月推出。支持以下3種速度模式:低速模式(low speed)1.5Mb/s;全速模式 (full speed)12Mb/s;高 速 模 式 (high speed)480Mb/s。它支持現(xiàn)存的所有 USB設(shè)備,既可以把USB1.1設(shè)備插入U(xiǎn)SB1.1的PC機(jī)接口,并且在電氣上兼容USB1.1的連接線。
(1)數(shù)據(jù)傳輸速率高;
(2)數(shù)據(jù)傳輸可靠;
(3)同時(shí)掛接多個(gè)USB設(shè)備;
(4)USB接口能為設(shè)備供電;
(5)支持熱插拔。
USB還具有一些新的特性,如:實(shí)時(shí)性(可以實(shí)現(xiàn)和一個(gè)設(shè)備之間有效的實(shí)時(shí)通信)、動(dòng)態(tài)性(可以實(shí)現(xiàn)接口間的動(dòng)態(tài)切換)、聯(lián)合性(不同的而又有相近的特性的接口可以聯(lián)合起來)、多能性(各個(gè)不同的接口可以使用不同的供電模式)。
接口卡的工作原理如下:接口卡由Lon網(wǎng)接口模塊和USB2.0接口模塊組成(見圖1)。采用雙CPU技術(shù),主CPU為USB2.0控制器CY7C68013內(nèi)置的增強(qiáng)的8051內(nèi)核(該內(nèi)核的運(yùn)行速度是普通8051的5倍),主要作為協(xié)議的轉(zhuǎn)換模塊,用來完成USB2.0協(xié)議與Lon Talk協(xié)議之間的轉(zhuǎn)換,向上與便攜PC機(jī)(或其它具有USB接口的便攜設(shè)備)進(jìn)行通訊,向下與3150進(jìn)行并口通訊。輔CPU為TMPN3150,主要起Lon網(wǎng)接口的功能,作為通訊協(xié)處理器使用,將從主CPU接收到的來自便攜PC機(jī)(或其它具有USB接口的便攜設(shè)備)的報(bào)文解析成Lontalk協(xié)議報(bào)文并通過Lonworks收發(fā)器傳向Lon網(wǎng),或?qū)腖on網(wǎng)上接收到的Lontalk協(xié)議報(bào)文轉(zhuǎn)發(fā)給主CPU,再由主CPU傳向便攜PC機(jī)(或其它具有USB接口的便攜設(shè)備)。51CPU與Neuron 3150采用并行方式通信。Neuron芯片的11個(gè)I/O有34種可選工作模式,其中包括并行I/O方式.該方式數(shù)據(jù)的最大傳送速率可達(dá)3.3Mbps。并口工作方式在數(shù)據(jù)傳送速度方面的優(yōu)勢(shì),使得Neuron芯片與51CPU完成大數(shù)據(jù)量的傳送成為可能。他們之間的數(shù)據(jù)傳輸是通過運(yùn)用“虛寫令牌傳遞機(jī)制”實(shí)現(xiàn)的,擁有令牌的一方擁有對(duì)數(shù)據(jù)總線的寫控制權(quán)。
圖1 Lon worksUSB2.0接口卡結(jié)構(gòu)框圖
該接口卡中,USB2.0控制器采用Cypress公司推出的USB2.0控制器CY7C68013。它是USB2.0的完整解決方案。CY7C68013該芯片包括帶8.5KB片上RAM的高速8051單片機(jī)、4KB FIFO存儲(chǔ)器以及通用可編程接口(GPIF)、串行接口引擎(SIE)和 USB2.0收發(fā)器,無需外加芯片即可完成高速USB傳輸,性價(jià)比較高。智能串行接口引擎(SIE)執(zhí)行所有基本的USB功能,將嵌入式MCU解放出來以用于實(shí)現(xiàn)專用的功能,并保證其持續(xù)的高性能的傳輸速率。通用可編程接口(GPIF),允許它“無膠粘接”,即可與任何ASIC或DSP進(jìn)行連接,并且它還支持所有通用總線標(biāo)準(zhǔn),包括ATA、UTOPIA、EPP和PCMCIA。它完全適用于USB2.0,并向下兼容USB1.1。
3150芯片選用Toshiba公司生產(chǎn)的TMPN3150。3150片內(nèi)存儲(chǔ)器的地址范圍是E800H~FFFH,包括2KB的SRAM和512B的EEPROM.3150可以外接存儲(chǔ)器,如RAM、ROM、EEPROM或FLASH,其地址范圍是0000H~7FFH。根據(jù)一般應(yīng)用的性能和成本要求,3150的外部存儲(chǔ)器采用FLASH和RAM.FLASH選用IS61C256AH-15N,RAM選用AT29C512。61C256和29C512的地址范圍通過邏輯門電路根據(jù)Neuron芯片的地址線和控制線E來確定。51與3150采用3150的并口通信方式,將Neuron芯片的IO0-IO7作為8根數(shù)據(jù)線與51CPU的PB(PB0-PB7)口相連,IO8作為片選信號(hào)線(/CS)與51CPU的PC0口相連,IO9作為數(shù)據(jù)讀/寫信號(hào)線(R/w)與51CPU的PC6口(寫信號(hào))相連,IO10作為握手信號(hào)線(HS)與51CPU的PC1口相連。
為提高增加接口卡的可靠性及穩(wěn)定性,本設(shè)計(jì)增加了一個(gè)鎖存器,完成復(fù)位接口的功能。當(dāng)3150芯片復(fù)位時(shí),通過鎖存器將復(fù)位信號(hào)傳送給CY7C68013內(nèi)置的8051處理器,8051接到復(fù)位信號(hào)自動(dòng)復(fù)位,并馬上清鎖存器。其接線如圖3。在并口通訊中8051與3150同步非常重要,要完成并口通訊8051首先要與3150達(dá)到同步且同步操作必須在3150復(fù)位時(shí)進(jìn)行。8051只在初始化程序時(shí)才與3150進(jìn)行同步操作,因此完成同步后每當(dāng)3150由于誤操作或錯(cuò)誤運(yùn)行而造成復(fù)位時(shí),3150與8051將會(huì)失去同步,而8051無法檢測(cè)到,從而造成并口通訊失敗。加入了鎖存器之后8051就能檢測(cè)到3150的復(fù)位信號(hào)并自動(dòng)復(fù)位自己的程序使得8051與3150再次達(dá)到同步。這將使適配器的可靠性和穩(wěn)定性都得到加強(qiáng)。圖2為CY7C68013與TMPN3150的接線圖。
Neuron芯片與LON的網(wǎng)絡(luò)介質(zhì)的接口采用一種LonWorks自由拓?fù)湫褪瞻l(fā)器FTT-10A.FTT-10A是一種變壓器耦合收發(fā)器,可提供一個(gè)與雙絞線的無極性接口,且支持網(wǎng)絡(luò)的自由拓?fù)浣Y(jié)構(gòu)。網(wǎng)絡(luò)通訊介質(zhì)采用最常用的雙絞線。
圖2 3150與USB控制器接線圖
Neuron芯片有一套專門的開發(fā)語言——Neuron C.Neuron C派生于ANSI C,并增加了對(duì)I/O、事件處理、報(bào)文傳送和分布式數(shù)據(jù)對(duì)象的支持,是開發(fā)Neuron芯片應(yīng)用程序的重要工具。其語法擴(kuò)展包括軟件定時(shí)器、網(wǎng)絡(luò)變量、顯式報(bào)文、多任務(wù)調(diào)度、EEPROM變量和附加功能等。其中,顯示報(bào)文的使用為L(zhǎng)ON節(jié)點(diǎn)間的通訊及互操作提供了基礎(chǔ)。通過對(duì)不同節(jié)點(diǎn)分配網(wǎng)絡(luò)地址,即可實(shí)現(xiàn)節(jié)點(diǎn)之間的數(shù)據(jù)傳遞。也就是說,LON接口卡中的3150通過構(gòu)造和解析報(bào)文實(shí)現(xiàn)了與LON網(wǎng)用戶節(jié)點(diǎn)的通信。
Cypress公司對(duì)CY7C68013提供了較為完備的開發(fā)套件CY3681。它包括帶128腳CY7C68013的硬件開發(fā)板和相應(yīng)的控制面板(Control panel)、GPIF代碼自動(dòng)生成軟件(GPIFTool)。對(duì)于內(nèi)核8051的開發(fā)采用Keil開發(fā)工具。
該接口卡的程序包含兩大部分。一是存儲(chǔ)在CY7C68013中的USB驅(qū)動(dòng)程序和與3150的并口通信程序;二是存儲(chǔ)在3150外部FALSH中的并口通信程序以及Lon Talk協(xié)議轉(zhuǎn)換程序。USB驅(qū)動(dòng)程序在開發(fā)套件CY3681中已有支持用戶只要調(diào)用即可。而與3150的并口通信程序則采用Keil C51語言編寫,并通過USB口下載到CY7C68013的8051內(nèi)核中。3150外部FALSH中的并口通信程序以及Lon Talk協(xié)議轉(zhuǎn)換程序采用Neuron C語言編寫,并采用LonWorks開發(fā)工具——LonBuilder中的Neuron C編譯器對(duì)程序進(jìn)行編譯,生成ROM映象文件,最后下載到片外FLASH(61C256)中。
在8051的并口通信程序中需要模擬3150的并口通信從A方式。以下為并口通信程序中主要模塊。包括同步模塊(sync_loop());握手模塊(hndshk());并口數(shù)據(jù)傳送接收模塊(pio_read();pio_write(void));令牌傳遞模塊(pass_token())。
根據(jù)硬件設(shè)計(jì),將3150芯片的I/O定義為并行(parallel)I/O對(duì)象類型.定義并行I/O對(duì)象的 Neuron C源代碼如下所示:IO_0parallel slave P_BUS,其中,P_BUS為所定義的I/O對(duì)象名稱。Neuron將從并口得到的報(bào)文解析,再利用Neuron C的消息傳送機(jī)制,將解析的消息傳送給適配器下層的應(yīng)用節(jié)點(diǎn)。讀取數(shù)據(jù)的Neuron C函數(shù)為io_in(),其格式如下:io_in(P_BUS,address1);其中P_BUS為并口IO對(duì)象名稱,address1為接收并口數(shù)據(jù)的地址。發(fā)消息的Neuron C函數(shù)為 msg_send()。
本文所設(shè)計(jì)的接口卡目的主要是為,帶有USB接口的便攜設(shè)備進(jìn)行現(xiàn)場(chǎng)數(shù)據(jù)測(cè)量和現(xiàn)場(chǎng)監(jiān)測(cè)提供高速、安全的通信接口。解決了令工程師頭痛的便攜設(shè)備與現(xiàn)場(chǎng)設(shè)備采用通用串口通信時(shí)傳輸速率低、經(jīng)常掉線、連接不可靠的問題。
[1]王錦標(biāo).現(xiàn)場(chǎng)總線綜述.冶金自動(dòng)化,1998(6):1.
[2]周振環(huán),凌志浩,馬欣,等.Neuron芯片在新一代分布式測(cè)控系統(tǒng)中的應(yīng)用.世界儀表與自動(dòng)化,1998(10):40.
[3]扈 嘯,張連超.USB2.0控制器CY7C68013特點(diǎn)與應(yīng)用.21IC.com,2003.
[4]EZ-USB FXTM USB Microcontroller.Cypress Semiconductor Corporation 2003.
2012-05-06)