摘 要:針對(duì)基金會(huì)現(xiàn)場(chǎng)總線的通信特點(diǎn)和要求,基于PCI接口和單片無(wú)線收發(fā)芯片nRF401,提出基于FF協(xié)議的無(wú)線PC接口卡的軟硬件設(shè)計(jì)方案。根據(jù)該方案設(shè)計(jì)的無(wú)線PC接口卡,很好地解決了控制結(jié)點(diǎn)分布廣、敷設(shè)通信線路困難的生產(chǎn)裝置或有移動(dòng)對(duì)象的工業(yè)現(xiàn)場(chǎng)的局部網(wǎng)絡(luò)通信問題。
關(guān)鍵詞:基金會(huì)現(xiàn)場(chǎng)總線;PCI;PC接口卡;無(wú)線收發(fā)芯片
The design of wireless PC-interface for foundation fieldbus
Abstract:This article proposes a software and hardware design schemefor wireless PC-interface based on PCI and nRF401.The PC-interface designed according to this scheme solves satisfactorily the communication problem of the local work located in industrial fields where the controlling points are distributed widely and the lines of communication are difficult to be laid or where mobile devices are used
Keywords:foundation fieldbus;PCI bus;PC-interface;wireless transceiver chip
0 引言
基金會(huì)現(xiàn)場(chǎng)總線(FF,F(xiàn)oundation FieldBus)是現(xiàn)場(chǎng)總線基金會(huì)為適應(yīng)自動(dòng)化系統(tǒng),特別是過程自動(dòng)化系統(tǒng)在功能、環(huán)境與技術(shù)上的需要而專門設(shè)計(jì)的,它作為一種全數(shù)字信號(hào)的現(xiàn)場(chǎng)總線協(xié)議,在國(guó)際上獲得了廣泛的支持[1]?;饡?huì)現(xiàn)場(chǎng)總線支持多種傳輸介質(zhì),包括雙絞線、電纜、光纖以及無(wú)線介質(zhì),目前應(yīng)用較廣泛的是前兩種。但是,對(duì)于控制結(jié)點(diǎn)分布廣、敷設(shè)通信線路困難的生產(chǎn)裝置或者有移動(dòng)對(duì)象的工業(yè)現(xiàn)場(chǎng),則必須考慮以無(wú)線方式進(jìn)行數(shù)據(jù)通信[2、3]。因此,開發(fā)基于FF協(xié)議的無(wú)線通信產(chǎn)品具有重大的現(xiàn)實(shí)意義。
1 基于FF協(xié)議的無(wú)線PC接口卡的硬件設(shè)計(jì)
基于FF現(xiàn)場(chǎng)總線協(xié)議的無(wú)線PC接口卡的基本功能是能夠自主地與符合FF協(xié)議的無(wú)線通信設(shè)備進(jìn)行通信。無(wú)線PC接口卡的總體結(jié)構(gòu)框圖如圖 1所示,其硬件電路包括CPU與PC主機(jī)CPU的通信接口、CPU與通信控制器的硬件接口、通信控制器與數(shù)據(jù)緩沖存儲(chǔ)器的接口、通信控制器與無(wú)線收發(fā)單元的接口等4個(gè)部分。其中雙口RAM采用CY7C09449PV-AV芯片;CPU選用嵌入式控制中最常用的Intel80188CPU;通信控制器選用SMAR公司的FB3050;無(wú)線收發(fā)單元由單片無(wú)線收發(fā)芯片nRF401及其外圍電路構(gòu)成。CY7C09449PV-AC可以采用總線仲裁加等待的方式,允許兩邊CPU在指令級(jí)共享SRAM,允許兩邊的CPU相互通過中斷交換信息,還允許通過狀態(tài)信號(hào)相互同步。在此采用狀態(tài)寄存器及中斷的方式進(jìn)行通信握手并快速傳遞數(shù)據(jù)。
1.1 接口卡CPU與PC的接口
隨著計(jì)算機(jī)技術(shù)的發(fā)展,PC總線日新月異。 PCISIG(Peripheral Component Interconnect Special Inter-est Group)因其具有32/64位寬度、最高傳輸率在64業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))總線的趨勢(shì),考慮到當(dāng)前需求及今后發(fā)展,在宿主總線的選擇上采用PCI總線。硬件接口芯片為Cypress Semiconductor公司的PCI總線雙口RAM。CY7C09449PV-AC是一款適于PCI2.2總線規(guī)范的功能完善、價(jià)格低廉的雙端口RAM接口芯片,其中一個(gè)端口是PCI接口,適合與PC機(jī)通信,另一個(gè)端口是本地接口,適合與各類本地CPU通信,其總線通信時(shí)鐘速率可達(dá)50MHz,兩個(gè)端口均可以獨(dú)立讀/寫靜態(tài)存儲(chǔ)器SRAM。其主要特點(diǎn)如下:①完全兼容PCI規(guī)范2.2版本;②128 k雙向靜態(tài)SRAM;③可作為主/從設(shè)備進(jìn)行數(shù)據(jù)的傳輸,支持PCI突發(fā)方式工作及DMA操作;④具有I2O(Intelligent Input/Output)功能,當(dāng)I2O單元工作時(shí)包含4組32位FIFO(FirstIn First Out)、中斷寄存器及部分SRAM,其余SRAM用于一般存儲(chǔ)目的;⑤支持3V、5V電壓工作;⑥可通過I2O總線對(duì)芯片進(jìn)行初始化設(shè)置,并把設(shè)置參數(shù)存于非易失性NVRAM中;⑦160腳扁平方形塑封[4]。
CY7C09449PV-AC可以采用總線仲裁加等待的方式,允許兩邊CPU在指令級(jí)共享SRAM,允許兩邊的CPU相互通過中斷交換信息,還允許通過狀態(tài)信號(hào)相互同步。在此采用狀態(tài)寄存器及中斷的方式進(jìn)行通信握手并快速傳遞數(shù)據(jù)。
1.2 接口卡CPU與通信控制器FB3050的接口
FB3050是SMAR公司推出的第三代基金會(huì)現(xiàn)場(chǎng)總線通信控制器芯片,該芯片符合ISASP50-2- 1992,PART2中所規(guī)定的現(xiàn)場(chǎng)物理層標(biāo)準(zhǔn)。FB3050芯片功能框圖如圖2所示。從圖中可以看出FB3050通過3總線與CPU相連接,右邊部分是FB3050輸出的存儲(chǔ)器總線,CPU和FB3050二者都能夠通過存儲(chǔ)器總線訪問掛接在該總線上的存儲(chǔ)器。下邊部分是FB3050通過介質(zhì)存取單元和現(xiàn)場(chǎng)總線網(wǎng)絡(luò)相連接,中間部分是FB3050的內(nèi)部功能塊。FB3050的主要功能是實(shí)現(xiàn)總線上的信號(hào)驅(qū)動(dòng)與接收、傳輸數(shù)據(jù)的串并行轉(zhuǎn)換、串行數(shù)據(jù)的編碼與解碼、信息幀的打包和解包、幀校驗(yàn)序列的產(chǎn)生和驗(yàn)證等[5]。
FB3050的對(duì)外信號(hào)主要可分為如下4組:
①時(shí)鐘和定時(shí)功能信號(hào)。3個(gè)輸入分別用于FB3050的系統(tǒng)時(shí)鐘、傳輸數(shù)據(jù)速率時(shí)鐘以及規(guī)定FB3050的系統(tǒng)同步沿。一個(gè)125kHz輸出信號(hào)供用戶線路中使用。
②CPU接口信號(hào)。CPU接口信號(hào)線用于連接接口卡微處理器,包括16位地址線,8位數(shù)據(jù)線,可采用數(shù)據(jù)/地址復(fù)用方式連接,也可直接連接,當(dāng)采用數(shù)據(jù)/地址復(fù)用方式連接時(shí),低8位地址線PI-AD-DR[7∶0]接信號(hào)地,包括兩條片選線,兩條讀寫控制線,中斷請(qǐng)求輸出線;另外包括一條PO-READY線,可與微處理器的WAIT線連接,使得FB3050的DMA和CPU能夠共享FB3050的局部存儲(chǔ)器總線。
③存儲(chǔ)器總線信號(hào)。本組信號(hào)是通過FB3050對(duì)CPU的地址總線進(jìn)行變換后所產(chǎn)生的一組存儲(chǔ)器總線,變換后的存儲(chǔ)器總線增加了8條擴(kuò)展存儲(chǔ)器地址線,配合使用FB3050內(nèi)部增加的段地址寄存器,使得存儲(chǔ)器總線的尋址范圍大大超出了原CPU的64KB容量,另外還輸出6條可編程的片選信號(hào)。因此這組存儲(chǔ)器總線和所掛接的存儲(chǔ)器是CPU和FB3050共享的。
④現(xiàn)場(chǎng)總線接口信號(hào)。FB3050共有8條現(xiàn)場(chǎng)總線接口線,一條接收數(shù)據(jù)的信號(hào)線PI-PHPDU,接收來(lái)自介質(zhì)存取單元的總線信號(hào),接收的數(shù)據(jù)信號(hào)格式符合總線曼徹斯特編碼規(guī)則,一條發(fā)送數(shù)據(jù)的信號(hào)線PO-PHPDU,發(fā)送數(shù)據(jù)到介質(zhì)存取單元,一條控制總線發(fā)送器工作狀態(tài)的控制線PO-TACT,5條狀態(tài)信號(hào)線用于指示FB3050的發(fā)送接收情況。
由于FB3050的接口設(shè)計(jì)上已經(jīng)充分考慮了和Intel系列CPU接口的問題,因此FB3050和In-tel80188的接口是非常簡(jiǎn)單的。Intel 80188的地址總線數(shù)據(jù)總線可以直接和FB3050的地址數(shù)據(jù)總線相連接,4條片選線MCS0~MCS3中的任一條都可以作FB3050的存儲(chǔ)器片選線。7條I/O片選線PCS0~ PCS6中的任一條都可以作為FB3050的內(nèi)部存儲(chǔ)器片選線;FB3050內(nèi)部共需要38個(gè)I/O口地址,而In-tel 80188每條I/O片選線可以提供128個(gè)I/O口地址,因此完全可以滿足要求。FB3050的中斷輸出為低電平有效,而Intel80188CPU的中斷輸入線需要高電平或上升沿信號(hào),因此需要加一反向器。FB3050的READY輸出線可以直接接到Intel80188的AREADY引腳上,使得FB3050的DMA和CPU能夠共享FB3050的局部存儲(chǔ)器總線。Intel80188的時(shí)鐘輸出信號(hào)可以直接作為FB3050的系統(tǒng)時(shí)鐘輸入。
1.3 FB3050與無(wú)線收發(fā)單元的接口
無(wú)線PC接口卡的無(wú)線收發(fā)單元的基本功能是發(fā)送和接收符合FF規(guī)范的無(wú)線信號(hào),它是FF信號(hào)能否實(shí)現(xiàn)正常通信的關(guān)鍵。其主要器件是單片無(wú)線收發(fā)芯片nRF401。nRF401是NORDIC公司最新推出的工作于ISM頻段(433MHz)的單片無(wú)線收發(fā)一體芯片。它是目前集成度最高的無(wú)線數(shù)傳產(chǎn)品,20腳雙列直插封裝。nRF401內(nèi)部包含高頻接收/發(fā)射、PLL合成、FSK調(diào)制/解調(diào)和雙頻切換等單元。
該芯片有如下特點(diǎn):FSK調(diào)制方式,直接數(shù)據(jù)輸入輸出,抗干擾能力強(qiáng),特別適合工業(yè)場(chǎng)合;采用DSS+PLL頻率合成技術(shù),頻率穩(wěn)定性極好;靈敏度高,達(dá)到-105dBm;無(wú)需曼徹斯特編碼;工作速率最高可達(dá)20kb/s;最大發(fā)射功率達(dá)+10dBm;開闊地的使用距離最遠(yuǎn)可達(dá)1000m;工作在ISM頻段433MHz和雙信道頻率433.92MHz/433.34MHz,使用不需要申請(qǐng)?jiān)S可證[6]。
利用nRF401實(shí)現(xiàn)的無(wú)線收發(fā)單元與FB3050接 口電路原理圖如圖3所示。其中,無(wú)線收發(fā)單元的天線設(shè)計(jì)采用環(huán)形差分天線。nRF401的時(shí)鐘輸入要與CPU和FB3050同步,因此nRF401必須與CPU和FB3050共用一個(gè)時(shí)鐘源。nRF401芯片的數(shù)據(jù)輸出(DOUT)/輸入(DIN)與FB3050的接收輸入(PI-PHPDU)、發(fā)送輸出(PO-PHPDU)信號(hào)線相連接;接FB3050的數(shù)據(jù)發(fā)送允許信號(hào)引腳PO-TACT,當(dāng)PO-TACT輸出為高電平時(shí)為發(fā)送模式,反之為接收模式;CS為頻率選擇引腳,接PCB跳線,由高低電平選擇所使用的頻率;PWR-UP為節(jié)電模式選擇信號(hào)引腳,也接PCB跳線,高電平時(shí)為工作模式,低電平時(shí)為待機(jī)模式。
2 軟件設(shè)計(jì)
無(wú)線PC接口卡的軟件采用嵌入式設(shè)計(jì)方法進(jìn)行設(shè)計(jì)。其基本工作過程為:當(dāng)外部有信號(hào)時(shí),無(wú)線收發(fā)單元首先接收信號(hào)并發(fā)送給通信控制器FB3050,通信控制器接收并發(fā)給接口卡上的接收緩沖區(qū),然后通過接口卡上的CPU進(jìn)行應(yīng)答。能處理的命令、數(shù)據(jù)立即處理,其余內(nèi)容通過PCI雙口RAM接口傳給上位機(jī)處理。反之,當(dāng)上位機(jī)需要發(fā)送信息到基于FF的無(wú)線網(wǎng)絡(luò)時(shí),信號(hào)先通過PCI雙口RAM,再經(jīng)接口卡CPU傳遞至通信卡發(fā)送緩沖區(qū),最后由通信控制器將發(fā)送緩沖區(qū)中的內(nèi)容通過無(wú)線收發(fā)單元發(fā)送給無(wú)線網(wǎng)絡(luò)。
其中FF通信控制器FB3050經(jīng)無(wú)線收發(fā)單元接收?qǐng)?bào)文以及將報(bào)文發(fā)送給無(wú)線收發(fā)單元均采用DMA方式。FB3050擁有一個(gè)直接內(nèi)存存取表,從而極大地方便了接收及發(fā)送工作。利用這個(gè)DMA表,F(xiàn)B3050能夠?qū)⒔邮招畔⒅苯哟嫒雰?nèi)存,或從內(nèi)存中發(fā)送信息,而不需要CPU的干預(yù)。
在接收時(shí)使用者只需要指定接收緩存區(qū)的內(nèi)存區(qū)域,F(xiàn)B3050自動(dòng)將信息按順序存入緩沖區(qū)。緩沖區(qū)是一個(gè)循環(huán)連續(xù)空間,所以當(dāng)數(shù)據(jù)(信息)存入緩沖區(qū)末尾時(shí),F(xiàn)B3050將返回到緩沖區(qū)起始位指針并繼續(xù)寫下一個(gè)已接收字節(jié)。緩沖區(qū)需要4 KB或更大空間。在發(fā)送時(shí)使用者只需要指定信息的開始指針的長(zhǎng)度,F(xiàn)B3050在接收到發(fā)送命令的同時(shí)發(fā)送此信息到無(wú)線收發(fā)單元,再通過無(wú)線收發(fā)單元傳送到FF無(wú)線網(wǎng)絡(luò)上。
3 結(jié)束語(yǔ)
根據(jù)以上方案設(shè)計(jì)的基于FF協(xié)議的無(wú)線PC接口卡,很好地解決了控制結(jié)點(diǎn)分布廣、敷設(shè)通信線路困難的生產(chǎn)裝置或者有移動(dòng)對(duì)象的工業(yè)現(xiàn)場(chǎng)的局 部網(wǎng)絡(luò)通信問題。在抗干擾能力、實(shí)時(shí)性、可靠性等方面基本滿足工業(yè)控制要求。隨著技術(shù)的成熟和更加廣泛的應(yīng)用,工業(yè)控制系統(tǒng)的發(fā)展趨勢(shì)必定是由有線網(wǎng)絡(luò)向有線無(wú)線混合網(wǎng)絡(luò)發(fā)展?;贔F的無(wú)線網(wǎng)絡(luò)產(chǎn)品的軟硬件的開發(fā),必將推動(dòng)工業(yè)控制網(wǎng)絡(luò)的廣泛應(yīng)用,并將產(chǎn)生巨大的社會(huì)及經(jīng)濟(jì)效益。
參考文獻(xiàn)
[1]馮冬芹,施一明.基金會(huì)現(xiàn)場(chǎng)總線(FF)技術(shù)講座(第1講):基金會(huì)現(xiàn)場(chǎng)總線(FF)的發(fā)展與特點(diǎn)[J].上海:自動(dòng)化儀表,2001,22(6):52-54.
[2]沈鋼,何星.工業(yè)控制網(wǎng)無(wú)線網(wǎng)關(guān)的設(shè)計(jì)和實(shí)現(xiàn)[J].蘭州:化工自動(dòng)化及儀表,2001,28(6):37-41.
[3]Cavalieri S,Panno D.A.A Novel Solution to InterconnectFielBus Systems UsingIEEE Wireless LAN Technology[J].Computer Standards & Interfaces.1998,(20):9-23.
[4]李貴山,威德虎.PCI局部總線開發(fā)者指南[M].西安:西安電子科技大學(xué)出版社,1997.
[5]蔡建新,閻華文.現(xiàn)場(chǎng)總線通信控制器FB3050的原理和應(yīng)用[J].西安:國(guó)外電子元器件,2000,(6):5-11.
[6]張銘,劉銀峰.基于nRF401的PC機(jī)無(wú)線收發(fā)模塊的設(shè)計(jì)[J].北京:電子技術(shù)應(yīng)用,2002,28(4):76-78. 工業(yè)儀表與自動(dòng)化裝置