EPA主控卡的硬件設(shè)計(jì)與驅(qū)動(dòng)開發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:EPA標(biāo)準(zhǔn)進(jìn)入國(guó)際標(biāo)準(zhǔn),為我國(guó)工業(yè)自動(dòng)化產(chǎn)業(yè)帶來了新的機(jī)遇。EPA主控卡的開發(fā),對(duì)于開發(fā)基于EPA的控制系統(tǒng)具有較大意義。EPA主控卡是連接各種協(xié)議的現(xiàn)場(chǎng)總線模塊、I/O模塊和上層軟件的平臺(tái)。在整個(gè)EPA系統(tǒng)中,它是符合EPA協(xié)議的現(xiàn)場(chǎng)設(shè)備,與上層工程師站和操作站進(jìn)行通信,又與現(xiàn)場(chǎng)總線模塊、I/O模塊進(jìn)行數(shù)據(jù)傳輸,負(fù)責(zé)信號(hào)的采集、處理和控制。
關(guān)鍵詞:EPA;LPC2478;硬件設(shè)計(jì);軟件設(shè)計(jì);測(cè)試
引言
EPA(Ethernet for Plant Automation)系統(tǒng)包括工作站、控制站、網(wǎng)絡(luò)設(shè)備、現(xiàn)場(chǎng)設(shè)備以及通信介質(zhì)等部分,而控制站是整個(gè)系統(tǒng)的核心。最主要的硬件平臺(tái),由EPA主控卡、I/O子系統(tǒng)、電源以及附屬設(shè)備等構(gòu)成。EPA主控卡是控制站中的主要設(shè)備,它連接在整個(gè)以太網(wǎng),與上層組態(tài)軟件、網(wǎng)絡(luò)設(shè)備進(jìn)行信息交互,實(shí)現(xiàn)控制系統(tǒng)的開放性和可互操作性;與下層各種協(xié)議模塊連接、通信,并實(shí)現(xiàn)對(duì)模塊的控制策略。EPA主控卡是依據(jù)EPA標(biāo)準(zhǔn)設(shè)計(jì)的,對(duì)EPA的應(yīng)用推廣具有重要作用。
1 EPA主控卡功能介紹
根據(jù)圖1所示的EPA系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)圖可知,EPA主控卡是一個(gè)符合EPA協(xié)議的現(xiàn)場(chǎng)設(shè)備,它將和其他的EPA現(xiàn)場(chǎng)設(shè)備一樣,參與整個(gè)EPA網(wǎng)絡(luò)組態(tài)、互操作、確定性調(diào)度等。EPA主控卡是連接各種協(xié)議的底層設(shè)備、I/O模塊與上層軟件的平臺(tái)。模塊和主控卡之間通過自定義的接口進(jìn)行數(shù)據(jù)交換。因此,主控卡需要實(shí)現(xiàn)以下基本功能:
①信息轉(zhuǎn)發(fā)功能。通過組態(tài)工作站完成信息的上載、顯示、處理、發(fā)布以及下載。
②過程測(cè)量與控制。主控卡向I/O、總線模塊傳遞數(shù)據(jù)采集命令/控制信息、這些模塊作為應(yīng)答向主控卡傳送的過程變量測(cè)量數(shù)據(jù)以及其狀態(tài)(好/壞)、設(shè)備狀態(tài)信息等,并報(bào)告給監(jiān)控層網(wǎng)絡(luò)。
③管理功能。實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)總線模塊、I/O模塊的控制、管理。在系統(tǒng)運(yùn)行過程中,對(duì)控制區(qū)域的模塊進(jìn)行自動(dòng)識(shí)別、管理,并為其分配地址、空間,同時(shí)將新模塊設(shè)備描述信息向上層組態(tài)軟件報(bào)告。
④總線供電。主控卡總線供電功能,保證主控卡穩(wěn)定工作。接入主控卡的線纜不僅能傳送數(shù)據(jù)信號(hào),還能給主控卡提供工作電源。
2 EPA主控卡硬件總體方案
根據(jù)主控卡功能需求分析,硬件部分主要有5大模塊:CPU控制模塊、以太網(wǎng)通信模塊、USB主機(jī)模塊、總線供電模塊以及存儲(chǔ)模塊。圖2為EPA主控卡硬件設(shè)計(jì)原理框圖。其中CPU控制模塊主要實(shí)現(xiàn)特定網(wǎng)絡(luò)接口功能及執(zhí)行相關(guān)控制信息;以太網(wǎng)PHY收發(fā)器KSZ8041NL和CPU內(nèi)部集成的以太網(wǎng)控制器一起組成以太網(wǎng)通信模塊,實(shí)現(xiàn)EPA主控卡的以太網(wǎng)接入和網(wǎng)絡(luò)信息數(shù)據(jù)傳輸;
USB模塊由CPU內(nèi)部集成的USB主機(jī)控制器和外圍電路構(gòu)成,實(shí)現(xiàn)USB設(shè)備的熱插拔、即插即用以及信息交換;總線供電模塊RJ45接口在提供數(shù)據(jù)通信的同時(shí)還為現(xiàn)場(chǎng)設(shè)備提供總線供電;存儲(chǔ)模塊主要作為程序存儲(chǔ)空間和內(nèi)存。結(jié)合CPU特性,以太網(wǎng)PHY收發(fā)器采用RMII連接,存儲(chǔ)模塊通過總線連接。
2.1 ARM微處理器
CPU選用基于ARM7TDMI—S核的微處理器LPC2478,其運(yùn)行頻率高達(dá)72 MHz,具有高性能的32位RISC結(jié)構(gòu)、16位的指令集,具有低功耗等特點(diǎn)。它的內(nèi)部資源豐富,包括1個(gè)10/100M以太網(wǎng)媒體訪問控制器(MAC)、1個(gè)帶4 KB終端RAM的USB全速設(shè)備/主機(jī)/OTG控制器、4個(gè)U1AR-T、1個(gè)SPI接口、512KB片上Flash程序存儲(chǔ)器。同時(shí)還帶有1個(gè)4 MHz的片內(nèi)振蕩器、98 KB RAM(包括64 KB局部SRAM、16 KB以太網(wǎng)SRAM)以及1個(gè)外部存儲(chǔ)器控制器(EMC)來支持上述的各種串行通信接口。這些特性使得它非常適用于通信網(wǎng)關(guān)和協(xié)議轉(zhuǎn)換器,為多種類型的通信應(yīng)用提供了理想的解決方案。
2.2 以太網(wǎng)PHY收發(fā)器
KSZ8041NL是Micrel公司推出的第6代PHY(局域網(wǎng)接口)解決方案。它具有功耗低、體積小、波形穩(wěn)定、價(jià)格便宜等特點(diǎn)。該芯片擁有150 mW的低電耗,以及6kV的針對(duì)快速以太網(wǎng)收發(fā)器的高靜電放電(Electro Static Discharge,ESD)保護(hù)功能。
2.3 存儲(chǔ)模塊
外部存儲(chǔ)器采用美國(guó)SST公司的SST39VF1601。這是一個(gè)1M×16位的CMOS多功能Flash(MPF)器件,尤其適用于要求程序、配置或數(shù)據(jù)存儲(chǔ)器方便和低成本的應(yīng)用。對(duì)于所有的系統(tǒng),SST39VF1601可以顯著增強(qiáng)系統(tǒng)的性能和可靠性,降低功耗。
內(nèi)存芯片(RAM)HY57V561620CLT—HI是一個(gè)32MB、16位的CMOS同步DRAM,它用于高帶寬大容量的主存儲(chǔ)器。HY57V561620CLT—HI的運(yùn)行與時(shí)鐘的高電平同步,所有數(shù)據(jù)的輸入和輸出都與輸入時(shí)鐘的上升沿相同步。數(shù)據(jù)通過內(nèi)部的管道來達(dá)到非常高的數(shù)據(jù)帶寬。所有的輸入和輸出電壓電平都和LVTTL電平相匹配。
2.4 USB主機(jī)模塊
LPC2478內(nèi)部具有一個(gè)嵌入式USB主機(jī)控制器,遵循OHCI(Open Host Controller Interface,開放式主機(jī)控制器接口)規(guī)范。LPC2478的USB主機(jī)控制器結(jié)構(gòu)如圖3所示。
如圖3所示,整個(gè)USB主機(jī)控制器都掛接在AHB總線上,內(nèi)核與USB主機(jī)控制器的數(shù)據(jù)交換通過DMA接口完成,與USB寄存器的通信則通過寄存器接口來實(shí)現(xiàn)。該主機(jī)控制器具有兩路端口,分別對(duì)應(yīng)著兩路LPC2478內(nèi)置的模擬收發(fā)器(ATX)。這兩路端口是完全一樣的,可以根據(jù)實(shí)際情況自由選擇。
2.5 電源模塊
EPA控制器的電源通過以太網(wǎng)供電,即以太網(wǎng)在數(shù)據(jù)傳輸?shù)耐瑫r(shí)輸送電源,避免系統(tǒng)因電源不穩(wěn)出現(xiàn)掉電的情況。采用RJ45接口的4/5、7/8作為電源和地傳輸線,數(shù)據(jù)收發(fā)1/2、3/6一起構(gòu)成兩個(gè)雙絞線對(duì),存在同一網(wǎng)線內(nèi),減少了擾動(dòng),增強(qiáng)了系統(tǒng)穩(wěn)定性。供電輸入電壓DC-24 V,由于CPU內(nèi)核和以太網(wǎng)PHY收發(fā)器、存儲(chǔ)器的工作電壓為3.3 V,所以需要對(duì)輸入電壓進(jìn)行DC—DC轉(zhuǎn)換,以滿足系統(tǒng)需求。
2.6 調(diào)試模塊
通過JTAG調(diào)試接口,可以很方便對(duì)程序進(jìn)行跟蹤調(diào)試。通過通用的串口,可以將調(diào)試信息打印到屏幕上,給調(diào)試帶來了極大的方便。
3 EPA主控卡驅(qū)動(dòng)軟件設(shè)計(jì)
作為工業(yè)應(yīng)用產(chǎn)品,需具有可靠性、準(zhǔn)確性、實(shí)時(shí)性要求。在EPA主控卡軟件開發(fā)過程中,采用模塊化設(shè)計(jì)思想,以減少程序間耦合,增強(qiáng)代碼的可移植性、可讀性和可靠性,同時(shí)也方便測(cè)試、維護(hù)和升級(jí)。主控卡中軟件功能模塊的劃分如圖4所示。圖中淺灰色模塊為待移植或待開發(fā)的模塊,深灰色模塊為已經(jīng)存在的模塊,白色部分是本文將要實(shí)現(xiàn)的模塊。
3.1 以太網(wǎng)驅(qū)動(dòng)模塊
此模塊包含3個(gè)部分:
①以太網(wǎng)模塊初始化。此模塊主要完成PHY讀寫、以太網(wǎng)SRAM分配、接收和發(fā)送緩沖區(qū)初始化,以太網(wǎng)MAC的硬件設(shè)置、寄存器設(shè)置、工作模式配置以及中斷配置等。
②以太網(wǎng)接收數(shù)據(jù)。此模塊主要將緩沖區(qū)中數(shù)據(jù)讀取并保存到接收緩沖區(qū),并通知上層協(xié)議軟件進(jìn)行處理。數(shù)據(jù)包的接收由硬件自動(dòng)完成,在接收數(shù)據(jù)完成后產(chǎn)生中斷觸發(fā)接收任務(wù)。
③以太網(wǎng)發(fā)送數(shù)據(jù)。此模塊將上層協(xié)議(EPA協(xié)議、UDP/IP協(xié)議)數(shù)據(jù)包封裝并拷貝到發(fā)送緩沖區(qū)中,然后由以太網(wǎng)PHY收發(fā)器自動(dòng)完成數(shù)據(jù)發(fā)送。
3.2 USB HOST驅(qū)動(dòng)模塊
USB HOST驅(qū)動(dòng)設(shè)計(jì)是基于LPC2478內(nèi)部集成的嵌入式USB主機(jī)控制器的基礎(chǔ)上的,該主機(jī)遵循OHCI規(guī)范。USB HOST設(shè)計(jì)包含以下兩部分:
①OHCI規(guī)范的介紹。此模塊介紹了OHCI工作范圍——HCD(主機(jī)控制器驅(qū)動(dòng))和HC(主機(jī)控制器)、數(shù)據(jù)傳輸類型、HCD和HC各自的任務(wù)以及HCD和HC之間接口HCCA。
②USB HOST驅(qū)動(dòng)設(shè)計(jì)模塊。此模塊實(shí)現(xiàn)硬件配置、中斷配置和USB HOST協(xié)議設(shè)計(jì)。分為PDD(Plat-form-Dependent Driver,與硬件平臺(tái)相關(guān))層和MDD(Model Device Driver,與硬件平臺(tái)無關(guān))層。MDD主要包括HCD實(shí)現(xiàn)對(duì)HC的管理、根集線器的管理、OHCI規(guī)范的數(shù)據(jù)結(jié)構(gòu)(ED/ TD/HCCA)、USB SRAM管理分配,USBD(USB核心驅(qū)動(dòng))實(shí)現(xiàn)USB協(xié)議的標(biāo)準(zhǔn)請(qǐng)求以及檢測(cè)到設(shè)備插入后完成設(shè)備的枚舉。
3.3 時(shí)鐘模塊
實(shí)時(shí)時(shí)鐘是實(shí)時(shí)操作系統(tǒng)的時(shí)間基準(zhǔn),沒有實(shí)時(shí)時(shí)鐘,也就不可能有實(shí)時(shí)系統(tǒng)的一切活動(dòng)。此模塊包含兩個(gè)部分:
①系統(tǒng)時(shí)鐘模塊。對(duì)定時(shí)器0的寄存器進(jìn)行配置以及中斷配置,使定時(shí)器0作為系統(tǒng)時(shí)鐘。
②USB時(shí)鐘模塊。對(duì)LPC2478內(nèi)部PLL(鎖相環(huán))寄存器和USB時(shí)鐘寄存器配置,設(shè)置USB時(shí)鐘頻率,使LPC2478的USB主機(jī)控制器可以正常運(yùn)行。
3.4 操作系統(tǒng)
嵌入式實(shí)時(shí)操作系統(tǒng)將復(fù)雜的軟件工程分解成多任務(wù),簡(jiǎn)化了軟件設(shè)計(jì),有助于提高系統(tǒng)穩(wěn)定性和可靠性,也使系統(tǒng)實(shí)時(shí)性得到了保證。考慮EPA主控卡中較多模塊實(shí)現(xiàn),簡(jiǎn)化主控卡軟件的設(shè)計(jì),所以在EPA主控卡的軟件開發(fā)中使用μC/OS-II系統(tǒng)。μC/OS-II操作系統(tǒng)有著優(yōu)秀的穩(wěn)定性和可靠性,它基于優(yōu)先級(jí)調(diào)度的多任務(wù),絕大多數(shù)的函數(shù)調(diào)用和系統(tǒng)服務(wù)具有可確定性、獨(dú)立的任務(wù)棧等特點(diǎn)。
4 主控卡以太網(wǎng)通信與USB驗(yàn)證
4.1 以太網(wǎng)通信驗(yàn)證
為測(cè)試和驗(yàn)證主控卡硬件電路和以太網(wǎng)驅(qū)動(dòng)的功能正確性,搭建了測(cè)試平臺(tái),如圖5所示。上位機(jī)起到監(jiān)控作用,EPA集線器一端通過網(wǎng)絡(luò)和PC機(jī)相連,一端連接若干EPA標(biāo)準(zhǔn)設(shè)備和EPA主控卡。
以太網(wǎng)通信驗(yàn)證設(shè)備主要有:一臺(tái)PC機(jī)、一根9針的串口線、一個(gè)帶總線供電的EPA集線器、一個(gè)JTAG調(diào)試器、EPA主控卡。EPA主控卡與PC機(jī)通過EPA集線器連接在同一局域網(wǎng)內(nèi),EPA主控卡的IP地址為192.168.1.2,PC機(jī)的IP地址為192.168.1.161。
ICMP是Internet控制報(bào)文協(xié)議,它是TCP/IP協(xié)議簇的一個(gè)子協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。ICMP是一個(gè)“錯(cuò)誤偵測(cè)與回報(bào)機(jī)制”,其目的就是檢測(cè)網(wǎng)路的連線狀況,也能確保連線的準(zhǔn)確性。通過ICMP的回顯請(qǐng)求和回顯應(yīng)答報(bào)文組合可以確定PC機(jī)和EPA主控卡能否彼此通信。
4.2 USB Host驅(qū)動(dòng)驗(yàn)證
USB Host驅(qū)動(dòng)驗(yàn)證設(shè)備主要有:1臺(tái)PC機(jī)、1根9針的串口線、1個(gè)JTAG調(diào)試器、EPA主控卡、USB設(shè)備(U盤)。
為驗(yàn)證硬件USB接口和軟件USB Host的正確性,需要選定USB設(shè)備,并為這個(gè)設(shè)備編寫USB主機(jī)驅(qū)動(dòng)程序。本文中選用了常用移動(dòng)存儲(chǔ)設(shè)備——U盤。在編寫好U盤驅(qū)動(dòng)后,通過JTAG調(diào)試器將USB Host下載到主控卡中,并將主控卡串口0與PC機(jī)串口相連,開啟超級(jí)終端,然后將U盤插入主控卡主機(jī)端口。在U盤插入主控卡以后,開始對(duì)U盤枚舉。枚舉成功以后,往U盤內(nèi)寫入數(shù)據(jù),然后從U盤讀出數(shù)據(jù)并對(duì)讀寫數(shù)據(jù)進(jìn)行比較,所有的枚舉信息、讀寫信息都通過超級(jí)終端打印出來。在U盤讀寫完成以后,將U盤插入電腦,在電腦上讀出U盤數(shù)據(jù),再次驗(yàn)證主控卡USB主機(jī)的功能正確性。
結(jié)語
EPA標(biāo)準(zhǔn)成功進(jìn)入國(guó)際標(biāo)準(zhǔn),為我國(guó)工業(yè)自動(dòng)化發(fā)展帶來新的際遇,產(chǎn)生了巨大的社會(huì)效益。本文提出針對(duì)EPA主控卡的系統(tǒng)結(jié)構(gòu),并對(duì)主控卡進(jìn)行功能需求分析,然后對(duì)主控卡硬件和軟件進(jìn)行了總體設(shè)計(jì)以及軟件功能模塊劃分,為EPA的推廣與應(yīng)用打下堅(jiān)實(shí)基礎(chǔ)。