專利名稱:多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型屬于一種用于不同類型的交換系統(tǒng)網(wǎng)絡(luò)之間連接的裝置,尤其涉及一種多協(xié) 議數(shù)據(jù)采集網(wǎng)關(guān)。
背景技術(shù):
目前,隨著計算機(jī)、通信、網(wǎng)絡(luò)等信息技術(shù)的發(fā)展,信息交換技術(shù)已經(jīng)廣泛應(yīng)用于工廠、 企業(yè),因此,需要建立包括從工業(yè)現(xiàn)場設(shè)備層到控制層、管理層等各個層次的綜合自動化網(wǎng) 絡(luò)平臺,建立以工業(yè)控制網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的企業(yè)信息化系統(tǒng)。雖然以太網(wǎng)在工業(yè)控制領(lǐng)域管 理層和控制層等中上層網(wǎng)絡(luò)通信中得到了廣泛應(yīng)用,但由于工業(yè)應(yīng)用的特殊性,工業(yè)以太網(wǎng) 對實(shí)時性、抗干擾性以及環(huán)境等因素具有很高的要求,原有商業(yè)以太網(wǎng)的技術(shù)難以滿足其需 要,這就需要在原有基礎(chǔ)上再建立一套行之有效的應(yīng)用層協(xié)議來滿足特定的工業(yè)環(huán)境。2007 年9月26日公開的中國專利申請200610025002. 1公開了一種工業(yè)現(xiàn)場設(shè)備的過程數(shù)據(jù)采集 方法,其對于支持OPC協(xié)議的PLC設(shè)備,在MuhiLink中配置采集終端、OPCServer、電文 和數(shù)據(jù)點(diǎn);對于通過XCOM通訊的數(shù)據(jù),配置通訊終端、電文、通道等信息。調(diào)用MuhiLink 或XCOM提供的.API讀寫接口,寫入和讀取電文。將讀取到的電文,按照電文格式,解析 電文,將電文解析為單個的數(shù)據(jù)點(diǎn)。最后將數(shù)據(jù)按照預(yù)先定義好的數(shù)據(jù)庫結(jié)構(gòu)存儲到歷史數(shù) 據(jù)庫中,并將解析后的實(shí)時數(shù)據(jù)發(fā)送給實(shí)時處理端,進(jìn)行實(shí)時處理和分析。上述工業(yè)現(xiàn)場設(shè) 備的過程數(shù)據(jù)采集方法其技術(shù)相對較復(fù)雜,有一定門檻,且配套設(shè)備成本較高,這就對實(shí)際 應(yīng)用與維護(hù)有較高要求,所以僅適用于大型系統(tǒng),而對于一些控制系統(tǒng)并不需要復(fù)雜的網(wǎng)絡(luò) 架構(gòu),其應(yīng)用簡單,且要求成本低,則需要為其設(shè)計一套簡潔高效、成本低廉的方案。 發(fā)明內(nèi)容
本實(shí)用新型的目的是克服以上缺陷,提供一種多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),其解決現(xiàn)有的工控 網(wǎng)絡(luò)協(xié)議多、接口復(fù)雜等問題,多協(xié)議數(shù)據(jù)網(wǎng)關(guān)可以實(shí)現(xiàn)現(xiàn)有的大多數(shù)協(xié)議之間的轉(zhuǎn)換,從 物理層、數(shù)據(jù)鏈路層到應(yīng)用層提供全面的數(shù)據(jù)轉(zhuǎn)換方案,使企業(yè)最終的應(yīng)用層只有一個單一 的網(wǎng)絡(luò)協(xié)議,方便企業(yè)的數(shù)據(jù)互通,降低應(yīng)用成本。
本實(shí)用新型采用的技術(shù)方案如下
一種多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),采用基于ARM+DSP的嵌入式系統(tǒng)結(jié)構(gòu),包括硬件應(yīng)用平臺、
系統(tǒng)軟件平臺和應(yīng)用軟件,其特征是采用存儲器作為數(shù)據(jù)服務(wù)器,建立數(shù)據(jù)庫,不同協(xié)議
的總線通過訪問數(shù)據(jù)庫實(shí)現(xiàn)相互的協(xié)議轉(zhuǎn)換、數(shù)據(jù)共享和不同協(xié)議網(wǎng)絡(luò)之間的通訊,硬件應(yīng)用平臺自帶通用接口采集工業(yè)現(xiàn)場中標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)的電流、電壓信號及視頻、音頻信號,或 采集工業(yè)現(xiàn)場具有標(biāo)準(zhǔn)通信協(xié)議設(shè)備的數(shù)據(jù)。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),硬件應(yīng)用平臺采用模塊式劃分,主模塊為soc模塊,其他
分離模塊包括數(shù)據(jù)采集模塊和供電電源模塊,模塊單獨(dú)使用完成不同種網(wǎng)絡(luò)之間的通信或不 同種網(wǎng)絡(luò)轉(zhuǎn)化成統(tǒng)一的工業(yè)以太網(wǎng)絡(luò)或其他的總線式網(wǎng)絡(luò),主模塊和分離模塊共同使用時,
模塊間通信使用標(biāo)準(zhǔn)工業(yè)以太網(wǎng)或CAN接口,其中同一種分離模塊單獨(dú)使用或多個使用。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),主模塊和分離模塊的數(shù)據(jù)組網(wǎng)方式采用集散式的數(shù)據(jù)采集
方式或集中式的數(shù)據(jù)采集方式。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),硬件應(yīng)用平臺包括微處理器核心電路、模擬量輸入輸出電
路、數(shù)字量輸入輸出電路、視頻信號采集電路、音頻信號采集電路、熱電偶、熱電阻信號采
集電路、以太網(wǎng)接口電路、串口電路、CAN總線接口電路、工業(yè)總線(如PROFIBUS、Lon Works
總線等)接口電路、CF卡存儲器電路、電源和外圍電路。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),微處理器由單片機(jī)或DSP構(gòu)成,主要接口為同SOC模塊 通信的工業(yè)以太網(wǎng)或CAN總線接口和同各種設(shè)備通信的RS-485、 CAN、 RJ45接口。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),其特征是數(shù)據(jù)采集模塊包括數(shù)字量控制模塊、模擬量采 集模塊、熱電偶采集模塊、熱電阻采集模塊、視頻采集模塊和音頻采集模塊。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),其特征是系統(tǒng)軟件平臺采用操作系統(tǒng)Limix, Lirmx下的 驅(qū)動程序包括串口驅(qū)動、CAN驅(qū)動、網(wǎng)絡(luò)接口驅(qū)動、USB HOST驅(qū)動、CF卡驅(qū)動、PCMICA 驅(qū)動、PROFIBUS總線驅(qū)動、Lon Works總線驅(qū)動和文件系統(tǒng)。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),系統(tǒng)軟件平臺的Bootloader采用Ecos的引導(dǎo)程序Redboot。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),應(yīng)用軟件是運(yùn)行在核心板上基于Linux操作系統(tǒng)的應(yīng)用軟 件GXIPSS或基于各個分離模塊的應(yīng)用軟件distribute-module-software。
所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),Gxlpss主要功能模塊包括輸入模塊、輸出模塊、協(xié)議解析 模塊、web server模塊、CF卡管理模塊和數(shù)據(jù)庫模塊。
這樣在工作時,先將本系統(tǒng)根據(jù)工業(yè)現(xiàn)場要求,按照圖1或圖2的結(jié)構(gòu)連接好,信號轉(zhuǎn) 換過程如下模擬量處理如圖5所示,模擬量經(jīng)過信號處理電路和微處理器內(nèi)程序處理,將 數(shù)字量轉(zhuǎn)換成可識別的電文,然后通過總線控制電路發(fā)送到SOC模塊;數(shù)字量、熱電偶、熱 電阻、音頻及視頻信號的處理過程分別如圖4、圖6、圖7、圖8、圖9所示;SOC模塊的啟 動過程如圖11所示,模塊上電后先啟動引導(dǎo)程序redboot,引導(dǎo)程序啟動完成后繼續(xù)啟動linux, 接著在li皿x上加載相關(guān)的驅(qū)動程序,最后執(zhí)行應(yīng)用程序Gxipss;進(jìn)入Gxipss后,先通過內(nèi) 嵌的Web server服務(wù)器進(jìn)入到網(wǎng)關(guān)的相關(guān)設(shè)置項,如圖12所示,設(shè)置內(nèi)容包括定義采集速率、協(xié)議轉(zhuǎn)換類型、數(shù)據(jù)庫字段配置等一系列系統(tǒng)配置;完成系統(tǒng)設(shè)置后系統(tǒng)對各個端口自 動掃描, 一旦接收到合法的電文即對其進(jìn)行解析,然后將解析的數(shù)據(jù)存儲到數(shù)據(jù)庫中;外部 的應(yīng)用程序根據(jù)Web server中的數(shù)據(jù)庫配置既可方便的直接通過以太網(wǎng)絡(luò)從出數(shù)據(jù)庫中讀取 需要的數(shù)據(jù),從而完成從工業(yè)現(xiàn)場數(shù)據(jù)到工業(yè)管理數(shù)據(jù)的轉(zhuǎn)換過程。
采用本實(shí)用新型的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),可解決現(xiàn)有的工控網(wǎng)絡(luò)協(xié)議多、接口復(fù)雜等問 題,多協(xié)議數(shù)據(jù)網(wǎng)關(guān)可以實(shí)現(xiàn)現(xiàn)有的大多數(shù)協(xié)議之間的轉(zhuǎn)換,從物理層、數(shù)據(jù)鏈路層到應(yīng)用 層提供全面的數(shù)據(jù)轉(zhuǎn)換方案,使企業(yè)最終的應(yīng)用層只有一個單一的網(wǎng)絡(luò)協(xié)議,方便企業(yè)的數(shù) 據(jù)互通,降低應(yīng)用成本,可廣泛應(yīng)用于電力、電信、礦山、工廠、環(huán)保、電力、抄表、樓宇 自動化、城市熱網(wǎng)、城市燃?xì)?、鐵路、機(jī)房監(jiān)控、加油站等行業(yè)中,用以實(shí)現(xiàn)遠(yuǎn)程集中式自 動數(shù)據(jù)采集,及一個系統(tǒng)內(nèi)部不同通訊協(xié)議的設(shè)備轉(zhuǎn)換為一種統(tǒng)一的通訊協(xié)議。
圖1是集散式的數(shù)據(jù)采集方式示意圖; 圖2是集中式的數(shù)據(jù)采集方式示意圖; 圖3是SOC模塊硬件結(jié)構(gòu)示意圖; 圖4是數(shù)字量控制模塊結(jié)構(gòu)示意圖; 圖5是模擬量采集模塊結(jié)構(gòu)示意圖; 圖6是熱電偶采集模塊結(jié)構(gòu)示意圖; 圖7是熱電阻采集模塊結(jié)構(gòu)示意圖; 圖8是視頻采集模塊結(jié)構(gòu)示意圖; 圖9是音頻采集模塊結(jié)構(gòu)示意圖; 圖IO是電源模塊結(jié)構(gòu)示意圖; 圖11是系統(tǒng)的啟動流程示意圖; 圖12是Gxlpss程序總體結(jié)構(gòu)示意圖; 圖13是數(shù)據(jù)采集流程圖14是嵌入式Web Server軟件系統(tǒng)示意圖; 圖15是RS-485通信流程圖; 圖16是以太網(wǎng)通信流程圖n是數(shù)字量控制應(yīng)用軟件程序結(jié)構(gòu)流程圖18是模擬量采集應(yīng)用軟件、熱電偶采集應(yīng)用軟件和熱電阻采集應(yīng)用軟件程序結(jié)構(gòu)流程圖; 圖19是視頻采集應(yīng)用軟件程序結(jié)構(gòu)流程圖; 圖20是音頻采集應(yīng)用軟件程序結(jié)構(gòu)流程圖;具體實(shí)施方式
以下結(jié)合附圖和實(shí)施方式對本實(shí)用新型作進(jìn)一步說明 實(shí)施例1:
如圖1至圖15及圖17至圖20所示, 一種多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),采用基于ARM+DSP 的嵌入式系統(tǒng)結(jié)構(gòu),包括硬件應(yīng)用平臺、系統(tǒng)軟件平臺和應(yīng)用軟件。
硬件品平臺采用模塊式劃分,主模塊為SOC模塊,其他分離模塊為數(shù)據(jù)采集模塊和供電 電源模塊。模塊間通信使用標(biāo)準(zhǔn)CAN接口。系統(tǒng)硬件主要包括微處理器核心電路、模擬量輸 入輸出電路、數(shù)字量輸入輸出電路、視頻信號采集電路、音頻信號采集電路、熱電偶、熱電 阻信號采集電路、以太網(wǎng)接口電路、串口電路、CAN總線接口電路、工業(yè)總線采用PROFIBUS 接口電路,CF卡存儲器電路、電源及外圍電路。SOC模塊各個接口及應(yīng)用詳細(xì)說明如下(1 ) 處理器。CPU采用CIRRCUS LOGIC的EP9315A,基于ARM920T內(nèi)核,內(nèi)帶MMU、 16KB 的指令cache和16KB的數(shù)據(jù)cache和Maverick Crunch數(shù)學(xué)協(xié)處理器;主頻200MHz,系統(tǒng) 總線100MHz,工業(yè)級;(2)外部存儲器。內(nèi)存采用64MB的SDRAM(100M外頻);NOR Flash 采用32M字節(jié)存儲器(2片Intel E28F128組成32位接口); NAND Flash采用32M字節(jié) (K9F2808,可更換為16M、 64M或128M的NandFlash); (3)時鐘源。內(nèi)部實(shí)時時鐘電路 及內(nèi)部復(fù)位電路;(4)實(shí)時時鐘接口。帶一個IIC接口可以外掛實(shí)時時鐘芯片8563; (5) CF 卡接口。 IDE轉(zhuǎn)CF接口; (6)串口, 4個RS485接口 (7)網(wǎng)絡(luò)接口。兩個工業(yè)100M以太 網(wǎng)口 ,帶聯(lián)接和傳輸指示燈;(8 ) USB接口 。 3個USB HOST (USB2.0規(guī)范)接口 ; ( 9) CAN 接口。高速CAN總線接口板2路,總線模式;(10)現(xiàn)場總線接口。高速PROFIBUS總線 接口;高速Lon Works總線接口; (ll)調(diào)試及下載接口。 一個20芯Multi — ICE標(biāo)準(zhǔn)JTAG 接口,支持SDT2.51,ADS1.2等調(diào)試;(12)電源接口。開關(guān)電源供電,輸入直流電壓范圍是 24V。微處理器主要由單片機(jī)或者DSP構(gòu)成,主要接口為同SOC模塊通信的CAN總線接口 。 數(shù)據(jù)采集模塊主要包括數(shù)字量控制模塊、模擬量采集模塊、熱電偶采集模塊、熱電阻采集模 塊、視頻采集模塊和音頻采集模塊。數(shù)字量控制模塊CPU采用Microchip公司生產(chǎn)的PIC16F87 芯片,工作頻率可以達(dá)到20MHz; CAN總線控制器采用PHILIPS公司生產(chǎn)的S.TA1000芯片, 通信速率1Mbps; A/D轉(zhuǎn)換芯片采用ADI公司的AD7143., AD7143是具有8個通道16位的 高分辨率的A/D轉(zhuǎn)換芯片;視頻采集模塊處理器采用TI公司的32位數(shù)字處理器 TMS320F2808,工作頻率可以達(dá)到100MHz,采用具有通用RGB/YUV格式輸出的攝像頭; 音頻采集模塊處理器采用TI公司的32位數(shù)字處理器TMS320F2808,工作頻率可以達(dá)到 lOOMHz,音頻ADC芯片采用ADI公司的AD1871 , AD1871是具有24位的高分辨率96KHz的音頻采集芯片;電源模塊輸入電壓為市電交流220V輸出電壓為直流24V。
系統(tǒng)軟件平臺采用操作系統(tǒng)Linux,其版本號為Linux2.4.21。系統(tǒng)的Bootloader采用Ecos 的引導(dǎo)程序Redboot,版本號為2.0。 Linux下的驅(qū)動程序包括串口驅(qū)動、CAN驅(qū)動、網(wǎng)絡(luò)接 口驅(qū)動、USBHOST驅(qū)動、CF卡驅(qū)動、PCMICA驅(qū)動、PROFIBUS總線驅(qū)動;Lon Works總 線驅(qū)動和文件系統(tǒng)。
串口驅(qū)動程序是基于linux通用的serial接口構(gòu)建的EP9315串口驅(qū)動程序。填充uart—ops 結(jié)構(gòu)以使系統(tǒng)獲得各種功能函數(shù),uart—ops結(jié)構(gòu)的定義對于2.4.21-mikl內(nèi)核在 /include/linux/serial—core.h中定義。
網(wǎng)絡(luò)接口驅(qū)動是在2.4.21-rmkl內(nèi)核中,提供TCP/IP助'議棧,并對ipv6提供支持。協(xié)議 ??梢灾苯蛹尤雰?nèi)核使用,CirmsLogic提供對9315網(wǎng)絡(luò)控制器的支持代碼,可以直接加入內(nèi) 核編譯使用。本內(nèi)核的內(nèi)核樹中,協(xié)議棧和通用網(wǎng)絡(luò)框架的代碼在/net, 9315網(wǎng)絡(luò)控制器的 馬區(qū)動程序在/drivers/net中。
USB HOST驅(qū)動是CirmsLogic官方提供ohci驅(qū)動程序,在此基礎(chǔ)上實(shí)現(xiàn)mass storage和 部分HID設(shè)備的驅(qū)動程序,可以直接加入標(biāo)準(zhǔn)內(nèi)核使用。代碼位于內(nèi)核樹的/drivers/usb之中。
CF卡驅(qū)動是基于linux通用ide接口構(gòu)建的ide/cdrom/cf card讀寫驅(qū)動程序。
CF card工作在true ide模式,和硬盤工作完全一致。對于內(nèi)核2.4.21-rmkl來說,IDE通 用讀寫框架在原始內(nèi)核樹的/drivers/ide中,驅(qū)動主要實(shí)現(xiàn)對架構(gòu)中關(guān)鍵函數(shù)的調(diào)用,填充 hwif_s等結(jié)構(gòu)以使系統(tǒng)獲得各種功能函數(shù)。借鑒CirmsLogic官方的開源9315ide控制器驅(qū)動 程序。
Linux PCMCLVCF層由PCMCIA主機(jī)控制器的設(shè)備驅(qū)動程序、不同卡的客戶機(jī)驅(qū)動程 序、用戶模式程序、有助于熱拔的后臺進(jìn)程和與以上各部分交互并為它們提供服務(wù)的內(nèi)核卡 服務(wù)中樞組成。PCMCIA控制器將卡連接到系統(tǒng)總線,將卡內(nèi)存映射到主機(jī)I/O和內(nèi)存窗口, 并將卡產(chǎn)生的中斷路由到自由處理器中斷線。PCMCIA卡擁有兩個存儲空間屬性內(nèi)存
(attribute memory)禾卩公共內(nèi)存(common memory)。 屬性內(nèi)存類似于Card ■ Information Structure (CIS),用來保存配置注冊和描述符信息。Linux卡服務(wù)核心與主機(jī)控制器設(shè)備驅(qū)動 程序、卡設(shè)備驅(qū)動程序及用戶模式cardmgr后臺進(jìn)程交互。它在一些事件(比如卡插入、卡 移出以及低電量)發(fā)生時調(diào)用卡驅(qū)動程序的事件處理程序例程。盡管卡服務(wù)從卡的CIS向上 傳送信息到cardmgr,但是cardmgr將為分配內(nèi)存窗口和中斷級別而在用戶空間
(/etc/pcmcia/config.opts)中定義的資源分配策略向下傳送到卡服務(wù)。插入Intersil WLAN CF 卡時,卡服務(wù)調(diào)用ormoco—cs模塊的PCMCIA事件處理程序??ǚ?wù)解析卡屬性內(nèi)存中的CIS元組(tuples)并向上傳送信息到cardmgr,這將從/etc/pcmcia/config文件加載適當(dāng)?shù)?設(shè)備驅(qū)動程序。由于卡的CIS中的manfid元組匹配/etc/pcmcia/config中的條目,所以 cardmgr綁定帶有orinoco一cs驅(qū)動程序的卡。orinoco_cs驅(qū)動程序由三個內(nèi)核模塊組成 Orinoco、 Orinoco—cs禾口 hermes。此外,由于設(shè)備屬于無線,所以當(dāng)啟動和停止-設(shè)備時,cardmgr 執(zhí)行腳本/eto/wireless/wireless。這個腳本使用WLAN工具和實(shí)用程序來配置設(shè)備驅(qū)動程序 參數(shù)。它還可以啟動WLAN上的網(wǎng)絡(luò)協(xié)議。在插入卡時,Orinoco—cs像傳統(tǒng)的網(wǎng)絡(luò)設(shè)備 驅(qū)動程序一樣,調(diào)用register_netdev來獲得分配給WLAN接口的ethX網(wǎng)絡(luò)接口名。它還 會注冊一個中斷服務(wù)例程的地址以服務(wù)收發(fā)無線數(shù)據(jù)時產(chǎn)生的中斷。中斷處理程序是Orinoco 模塊的一部分,并與Linux網(wǎng)絡(luò)棧交互。Linux網(wǎng)絡(luò)棧使用主要的數(shù)據(jù)結(jié)構(gòu)是sk—buff結(jié)構(gòu) (定義在include/linux/skbuff.h中,該文件包括關(guān)于附加在它上的一個內(nèi)存塊的控制信息)。 sk一buffs為所有網(wǎng)絡(luò)層提供有效的緩沖器處理和流控制機(jī)制。網(wǎng)絡(luò)設(shè)備驅(qū)動程序執(zhí)行一個 dev一alloc—skb和一個skb_put,以用IP數(shù)據(jù)填充一個sk一buff,然后通過調(diào)用netif—rx將這 個sk—buff傳送到TCP/IP棧。orinoco中斷服務(wù)例程用從WLAN接收的數(shù)據(jù)填充sk_buffs, 并經(jīng)由netif_nc將它傳送到IP棧。
在9315的現(xiàn)有can方案中,Can處理器sjalOOO占用一個地址片選信號直接掛在系統(tǒng)總 線上,驅(qū)動程序使用常規(guī)字符設(shè)備驅(qū)動,放在內(nèi)核的/drivers/char目錄之中。驅(qū)動模塊工作流 程為(1 )在驅(qū)動初始化的時候使用ioremap將物理地址影射回linux虛擬地址;(2)對sjal000 的讀寫操作直接使用影射后的虛擬地址進(jìn)行;(3)在驅(qū)動模塊退出時使用ioimmap釋放影射; (4) 一般在編寫后直接加入內(nèi)核樹,與內(nèi)核一起編譯。
LonWorks現(xiàn)場總線網(wǎng)卡驅(qū)動程序是選擇并實(shí)現(xiàn)了五個入口點(diǎn),即open, release,read, write, ioctl。對于open和release入口點(diǎn),由于設(shè)備特點(diǎn),只需要控制設(shè)備驅(qū)動模塊在使用時,不被 異常釋放即可,對用到的入口點(diǎn)做了初始化。
LonWorks現(xiàn)場總線網(wǎng)卡驅(qū)動模塊初始化,通過對init—module的實(shí)現(xiàn)來完成任務(wù)。以字 符設(shè)備類型向系統(tǒng)注冊LonWorks現(xiàn)場總線設(shè)備卡,同時動態(tài)獲得其設(shè)備號。通過調(diào)用下面 這個函數(shù)int register— chrdev(unsigned int major, const char*name,struct file—operations承fops)來 實(shí)現(xiàn)。使major參數(shù)為0,這樣系統(tǒng)就會動態(tài)的分配并返回主設(shè)備號。name參數(shù)是用于標(biāo)識 設(shè)備的字符串。file—operatons傳入的是如前所述的lmdev—fops。然后,向系統(tǒng)申請LonWorks 現(xiàn)場總線網(wǎng)卡的I/O端口地址。根據(jù)該卡上的跳線得到的I/O地址,調(diào)用系統(tǒng)提供的 宏:check—region(start,n)〃檢查端口地址范圍start到start+n-1是否可用,是則返回0,否則返回 1 。 requestjegion(start,n,name)〃用于申請通過以上函數(shù)檢查的地址范圍。然后做一些必要的系統(tǒng)日志,根據(jù)各種條件用printk向系統(tǒng)日志緩沖區(qū)寫入不同級別的信息。最后,控制對內(nèi)核 資源提供的符號表輸出的符號信息,即在可加載模塊機(jī)制部分提到的模塊要注冊的服務(wù)。這 里使用EX-PORT_NO_SYMBOLS使得該模塊不輸出任何符號信息。
LonWorks現(xiàn)場總線網(wǎng)卡模塊卸載需要(1)調(diào)用releasejegion(start,n)宏釋放模塊初始 化時申請的I/O端口資源;(2)調(diào)用int unregister—chrdev(unsigned int major, const char*name);
(3)向系統(tǒng)注銷該字符設(shè)備,本程序中major參數(shù)即前面注冊時動態(tài)獲得的主設(shè)備號,name 與注冊時提供的name字符串相同;(4)調(diào)用printk函數(shù),做-一些必要的系統(tǒng)日志。
對file operations結(jié)構(gòu)中入口點(diǎn)的實(shí)現(xiàn)采用inbj3宏,訪問硬件的狀態(tài)和數(shù)據(jù)端口 ,以讀 耳又相應(yīng)的狀態(tài)禾卩數(shù)據(jù)信息。調(diào)用long—sleep_on_timeout(wait—queue_head—t *q, long timeout)函 數(shù)把當(dāng)前進(jìn)程加入時鐘等待隊列q中,使它等待timeout時間。調(diào)用Linux核心提供的 c叩yJojser(to,from,n)宏,把數(shù)據(jù)從內(nèi)核空間地址from拷貝到用戶空間地址to中。這樣,系 統(tǒng)調(diào)用返回后,用戶空間的代碼就可以通過to指針來訪問相應(yīng)的數(shù)據(jù)并進(jìn)行處理了。從而完 成核心驅(qū)動模塊部分的程序。
編譯內(nèi)核模塊是在程序完成后,用gcc編譯成目標(biāo)文件(不鏈接,生成*.0文件),即在gcc 命令行里加上-c參數(shù),還要加上-DJCERNEL一 -DMODULE參數(shù)。還必須給編譯器指定-0選 項。gcc只有打開優(yōu)化選項后才能擴(kuò)展內(nèi)嵌函數(shù),不過它能同時接受-g和-O選項,這樣就可 以調(diào)試那些內(nèi)嵌函數(shù)的代碼了。優(yōu)化參數(shù)-0有三個級別:01,02,03,它們的優(yōu)化程度不同,優(yōu) 化效果03大于02大于O1。
PROFIBUS總線驅(qū)動同CAN和Lon works驅(qū)動程序一樣都是字符類驅(qū)動程序的開發(fā),開 發(fā)流程同CAN, PROFIBUS的協(xié)議結(jié)構(gòu)是根據(jù)IS07498國際標(biāo)準(zhǔn),以開放式系統(tǒng)互聯(lián)網(wǎng)絡(luò) (Open System Interconnection-SIO)作為參考模型的。該模型共有七層。(1) PROFIBUS — DP:定義了第一.二層和用戶接口。第三到七層未加描述。用戶接口規(guī)定了用戶及系統(tǒng)以及 不同設(shè)備可調(diào)用的應(yīng)用功能,并詳細(xì)說明了各種不同PROFIBUS—DP設(shè)備的設(shè)備行為(2) PROFIBUS — FMS:定義了第一.二.七層,應(yīng)用層包括現(xiàn)場總線信息規(guī)范(Fieldbus Message Specification-FMS)和低層接口(Lower Layer Interface _ LL I )。 FMS包括了應(yīng)用協(xié)議并向 用戶提供了可廣泛選用的強(qiáng)有力的通信服務(wù)。LL I協(xié)調(diào)不同的通信關(guān)系并提供不依賴設(shè)備的 第二層訪問接口。 (3) PROFIBUS—PA: PA的數(shù)據(jù)傳輸采用擴(kuò)展的PROFIBUS—DP協(xié)議。 另夕卜,PA還描述了現(xiàn)場設(shè)備行為的PA行規(guī)。根據(jù)IEC1158 — 2標(biāo)準(zhǔn),PA的傳輸技術(shù)可確保 其本征安全性,而且可通過總線給現(xiàn)場設(shè)備供電。使用連接器可在DP上擴(kuò)展PA網(wǎng)絡(luò)。
在2.4.21-rmkl內(nèi)核中提供對各種常用的文件系統(tǒng)的支持,如c麗fs、 jffs2、 ext2、 fat等
9等。結(jié)合硬件對各個文件系統(tǒng)做實(shí)際使用的測試,針對硬件使用最合適的穩(wěn)定的文件系統(tǒng),
進(jìn)行必要的修改和移植。
應(yīng)用軟件包括運(yùn)行在核心板上基于Linux操作系統(tǒng)的應(yīng)用軟件GXIPSS和基于各個分離模
塊的應(yīng)用軟件(distribute-module-software)。系統(tǒng)的啟動流程首先受由Redboot引導(dǎo)Linux啟
動,Linux啟動后載入相應(yīng)的驅(qū)動程序,最后啟動GXIPSS。 Gxlpss的數(shù)據(jù)轉(zhuǎn)發(fā)是將本系統(tǒng)當(dāng)
作一臺數(shù)據(jù)服務(wù)器,接受來自數(shù)據(jù)采集主機(jī)的數(shù)據(jù)采集指令,Gxlpss的數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議類型、
站物理地址、轉(zhuǎn)發(fā)數(shù)據(jù)通道地址或者參數(shù)名稱由使用人員自主設(shè)定,所有數(shù)據(jù)采集、轉(zhuǎn)發(fā)均
支持?jǐn)?shù)據(jù)的讀、寫雙向訪問,根據(jù)安全需要可以設(shè)置成只讀方式,保證系統(tǒng)數(shù)據(jù)的安全,其主
要模塊包括輸入模塊、輸出模塊、協(xié)議解析模塊、web server模塊和CF卡管理模塊。Gxlpss
通過Web server對系統(tǒng)的數(shù)據(jù)流進(jìn)行控制,在程序首次啟動時定義數(shù)據(jù)的流向,即定義數(shù)據(jù)
流的進(jìn)口和出口,繼而再配置通信的具體參數(shù)如通信速率、通信協(xié)議,保存多種數(shù)據(jù)的流向
模版,設(shè)置完畢后指定在下次啟動時按照某一種模版啟動。轉(zhuǎn)發(fā)數(shù)據(jù)是數(shù)據(jù)直通的形式,即
入口的數(shù)據(jù)只進(jìn)行協(xié)議的轉(zhuǎn)換并不存儲保留;或數(shù)據(jù)在CF卡上可以保留一段時間,CF卡上
有一個小型的嵌入式數(shù)據(jù)庫,入口程序向數(shù)據(jù)庫中寫入數(shù)據(jù),出口程序在讀取數(shù)據(jù)時也是從
數(shù)據(jù)庫中讀取數(shù)據(jù)。Gxlpss的程序總體結(jié)構(gòu)為Gxlpss應(yīng)用程序主要分為數(shù)據(jù)采集控制程序、
各種總線與數(shù)據(jù)庫通信程序、協(xié)議解析程序、Web server程序、CF卡管理程序和數(shù)據(jù)庫六部
分構(gòu)成。協(xié)議解析部分主要對各種協(xié)議的流程進(jìn)行說明,CF卡管理程序可以采用標(biāo)準(zhǔn)的Linux
文件系統(tǒng)直接管理。數(shù)據(jù)采集時,首先系統(tǒng)檢測功能選擇標(biāo)志位是采集數(shù)據(jù)還是向模擬、數(shù)
字量輸出通道發(fā)送數(shù)據(jù)功能。如果選擇采集數(shù)據(jù)功能,則由標(biāo)志位檢測需要采集數(shù)據(jù)的端口,
然后從該端口采集數(shù)據(jù)并發(fā)往存儲器進(jìn)行存儲;同樣,選擇了讀取數(shù)據(jù)功能后,系統(tǒng)會根據(jù)
需要向需要發(fā)送數(shù)據(jù)的端口發(fā)送數(shù)據(jù)。
采用RS-485通信流程,通信過程主要采取了總線仲裁機(jī)制,在向485總線讀寫數(shù)據(jù)時,主
設(shè)備先寫一個字節(jié)的地址請求,所有的從設(shè)備均會收到,只有地址與之相等的從設(shè)備端口打開,
其他設(shè)備全部關(guān)閉,這樣,主設(shè)備與從設(shè)備之間的通信就是點(diǎn)對點(diǎn)的。每一個從設(shè)備均有一根
請求線與主設(shè)備相連,若從設(shè)備需要與主設(shè)備通信時,先通過請求線進(jìn)行請求,當(dāng)請求成功后,選
擇數(shù)據(jù)接收或發(fā)送功能,然后轉(zhuǎn)入相應(yīng)的子程序進(jìn)行相應(yīng)的處理,從而完成與外部的通信。
通信完成后,關(guān)閉中斷,釋放總線,以保證其他從設(shè)備這段時間能與主設(shè)備正常通信,提高通信效率。
嵌入式Web Server的軟件系統(tǒng)包括五個部分①HTTP引擎;②虛擬文件系統(tǒng);③配置 模塊;④安全模塊;⑤應(yīng)用程序接口模塊。本系統(tǒng)應(yīng)用程序接口模塊采用CGI形式。CGI提 供嵌入式德b Server—個執(zhí)行外部程序的通道,CGI程序經(jīng)過編譯成為可執(zhí)行文件,放在服務(wù)器端運(yùn)行。嵌入式Web Server根據(jù)用戶的請求調(diào)用相應(yīng)的CGI程序,并由嵌入式Web Server 將CGI程序得到的動態(tài)信息封裝到頁面中,發(fā)送到用戶瀏覽器上。分離模塊系列軟件主要是 面向單片機(jī)/DSP開的應(yīng)用軟件,開發(fā)語言使用C語言。
這樣在工作時,先將本系統(tǒng)根據(jù)工業(yè)現(xiàn)場要求,按照圖1或圖2的結(jié)構(gòu)連接好,信號轉(zhuǎn) 換過程如下模擬量處理如圖5所示,模擬量經(jīng)過信號處理電路和微處理器內(nèi)程序處理,將 數(shù)字量轉(zhuǎn)換成可識別的電文,然后通過總線控制電路發(fā)送到SOC模塊;數(shù)字量、熱電偶、熱 電阻、音頻及視頻信號的處理過程分別如圖4、圖6、圖7、圖8、圖9所示;SOC模塊的啟 動過程如圖11所示,模塊上電后先啟動引導(dǎo)程序redboot,引導(dǎo)程序啟動完成后繼續(xù)啟動linux, 接著在linux上加載相關(guān)的驅(qū)動程序,最后執(zhí)行應(yīng)用程序Gxipss;進(jìn)入Gxipss后,先通過內(nèi) 嵌的Web server服務(wù)器進(jìn)入到網(wǎng)關(guān)的相關(guān)設(shè)置項,如圖12所示,設(shè)置內(nèi)容包括定義采集速 率、協(xié)議轉(zhuǎn)換類型、數(shù)據(jù)庫字段配置等一系列系統(tǒng)配置;完成系統(tǒng)設(shè)置后系統(tǒng)對各個端口自 動掃描, 一旦接收到合法的電文即對其進(jìn)行解析,然后將解析的數(shù)據(jù)存儲到數(shù)據(jù)庫中;外部 的應(yīng)用程序根據(jù)Web server中的數(shù)據(jù)庫配置既可方便的直接通過以太網(wǎng)絡(luò)從出數(shù)據(jù)庫中讀取 需要的數(shù)據(jù),從而完成從工業(yè)現(xiàn)場數(shù)據(jù)到工業(yè)管理數(shù)據(jù)的轉(zhuǎn)換過程。
實(shí)施例2:
同實(shí)施例1,所不同的是,采用以太網(wǎng)通信流程,當(dāng)以太網(wǎng)與數(shù)據(jù)庫通信時首先判斷是 接收數(shù)據(jù)還是從數(shù)據(jù)庫向外發(fā)送數(shù)據(jù)。如果是從外部接收數(shù)據(jù),則接收IP包,解析IP包并 將其送至TCP層,TCP層又把接收來的數(shù)據(jù)包解析并送至應(yīng)用層,應(yīng)用層將解析完的數(shù)據(jù)發(fā) 往數(shù)據(jù)庫保存。當(dāng)選擇發(fā)送數(shù)據(jù)時,把從數(shù)據(jù)庫傳遞過來的數(shù)據(jù)在TCP層打包,然后再做IP 打包,最后向外傳送,從而完成與以太網(wǎng)的通信,如圖1至圖14及圖16至圖20所示。
權(quán)利要求1、一種多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),采用基于ARM+DSP的嵌入式系統(tǒng)結(jié)構(gòu),包括硬件應(yīng)用平臺,其特征是硬件應(yīng)用品平臺采用模塊式劃分,主模塊為SOC模塊,其他分離模塊包括數(shù)據(jù)采集模塊和供電電源模塊,數(shù)據(jù)采集模塊和電源模塊通過CAN總線與SOC模塊連接。
2、 根據(jù)權(quán)利要求1所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),其特征是主模塊和分離模塊的數(shù)據(jù)組網(wǎng)方式采用集散式的數(shù)據(jù)采集方式或集中式的數(shù)據(jù)采集方式。
3、 根據(jù)權(quán)利要求1所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),其特征是硬件應(yīng)用平臺包括微處理器核心電路、模擬量輸入輸出電路、數(shù)字量輸入輸出電路、視頻信號采集電路、音頻信號采集 電路、熱電偶、熱電阻信號采集電路、以太網(wǎng)接口電路、串口電路、CAN總線接口電路、工 業(yè)總線接口電路、CF卡存儲器電路、電源和外圍電路。
4、 根據(jù)權(quán)利要求3所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),其特征是微處理器由單片機(jī)或DSP 構(gòu)成,主要接口為同SOC模塊通信的工業(yè)以太網(wǎng)或CAN總線接口和同各種設(shè)備通信的 RS-485、 CAN、 RJ45接口。
5、 根據(jù)權(quán)利要求1所述的多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān),其特征是數(shù)據(jù)采集模塊包括數(shù)字量控 制模塊、模擬量采集模塊、熱電偶采集模塊、熱電阻采集模塊、視頻采集模塊和音頻采集模 塊。
專利摘要本實(shí)用新型為用于不同類型交換系統(tǒng)網(wǎng)絡(luò)間連接的裝置,尤其是一種多協(xié)議數(shù)據(jù)采集網(wǎng)關(guān)。采用基于ARM+DSP的嵌入式系統(tǒng)結(jié)構(gòu),包括硬件應(yīng)用平臺、系統(tǒng)軟件平臺和應(yīng)用軟件,用存儲器作數(shù)據(jù)服務(wù)器建立數(shù)據(jù)庫,不同協(xié)議總線經(jīng)訪問數(shù)據(jù)庫轉(zhuǎn)換協(xié)議、數(shù)據(jù)共享和不同協(xié)議網(wǎng)絡(luò)間通訊,硬件應(yīng)用平臺自帶通用接口采集工業(yè)現(xiàn)場中標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)的電流、電壓信號及視頻、音頻信號,或采集工業(yè)現(xiàn)場具有標(biāo)準(zhǔn)通信協(xié)議設(shè)備的數(shù)據(jù),實(shí)現(xiàn)協(xié)議間轉(zhuǎn)換,從物理層、數(shù)據(jù)鏈路層到應(yīng)用層提供數(shù)據(jù)轉(zhuǎn)換方案,應(yīng)用層為單一網(wǎng)絡(luò)協(xié)議,方便企業(yè)數(shù)據(jù)互通,降低應(yīng)用成本。用于電力、礦山等遠(yuǎn)程集中式自動數(shù)據(jù)采集,及一個系統(tǒng)內(nèi)部不同通訊協(xié)議的設(shè)備轉(zhuǎn)換為一種統(tǒng)一的通訊協(xié)議。
文檔編號H04L12/66GK201294545SQ20082002554
公開日2009年8月19日 申請日期2008年7月9日 優(yōu)先權(quán)日2008年7月9日
發(fā)明者革 孫, 杜長河, 王志強(qiáng), 王振崗, 許云龍, 亮 趙, 趙小鵬, 趙文龍, 趙長江, 馬學(xué)東 申請人:青島高校信息產(chǎn)業(yè)有限公司