基于LPC2294的泵艙信號轉(zhuǎn)換電路設(shè)計(jì)
摘要 提出了一種泵艙信號轉(zhuǎn)換電路的設(shè)計(jì),將船用泵的壓力值通過壓力傳感器發(fā)送給控制芯片LPC2294。再經(jīng)對數(shù)據(jù)的打包封裝,通過以太網(wǎng)控制芯片將數(shù)據(jù)發(fā)送至以太網(wǎng)。此外還給出了轉(zhuǎn)換電路的硬、軟件設(shè)計(jì)流程,并經(jīng)過測試實(shí)驗(yàn)證明其的有效性。該設(shè)計(jì)對于船用泵壓力異常狀態(tài)具有良好的預(yù)警作用,實(shí)現(xiàn)了船員的遠(yuǎn)程監(jiān)控要求。
本文引用地址:http://www.ex-cimer.com/article/201610/308113.htm近年來,中國航海事業(yè)快速發(fā)展,船舶安全也日益成為倍受關(guān)注的問題。據(jù)統(tǒng)計(jì),自上世紀(jì)80年代以來,爆燃和火災(zāi)造成的海難事故比重平均每年遞增1%,在我國每年的海難事故近千起,其中因船舶起火和爆炸造成的損失約占10%,造成了重大經(jīng)濟(jì)損失和人員傷亡。
作為船舶的重要組成部分,泵艙內(nèi)的各類船用泵的狀態(tài)直接影響著船舶的正常運(yùn)作,而船用泵的壓力值則是各項(xiàng)船用泵狀態(tài)參數(shù)中最具代表性的一種。借助于現(xiàn)代傳感器技術(shù)的普遍應(yīng)用,其能代替輪機(jī)員正確地實(shí)現(xiàn)對機(jī)艙中的主輔機(jī)等設(shè)備和各系統(tǒng)的巡視管理和控制。
本文提出一種基于LC2294處理器的泵艙信號轉(zhuǎn)換電路,實(shí)現(xiàn)了對3路4~20 mA電流信號的采集處理,并將4~20 mA電流信號轉(zhuǎn)化為0~1.6 MPa壓力信號,當(dāng)壓力信號超過設(shè)定門限后進(jìn)行壓力超限光報(bào)警,轉(zhuǎn)化誤差≤0.01 MPa,同時(shí)將壓力數(shù)據(jù)通過10/100 Mbit·s-1自適應(yīng)雙冗余以太網(wǎng)上傳到上位機(jī),數(shù)據(jù)發(fā)送頻率≥5次/s。
1 信號轉(zhuǎn)換電路設(shè)計(jì)
圖1所示為本轉(zhuǎn)換電路設(shè)計(jì)與實(shí)現(xiàn)的整體方案框圖,其中LPC2294作為信號轉(zhuǎn)換電路的主控制器,擴(kuò)展了兩個(gè)10/100 Mbit·s-1自適應(yīng)網(wǎng)卡接口,以μC/OS-II實(shí)時(shí)操作系統(tǒng)作為控制平臺(tái)。對TCP/IP協(xié)議棧進(jìn)行裁剪與實(shí)現(xiàn),并通過軟件設(shè)計(jì)完成了對壓力傳感器的數(shù)據(jù)接收轉(zhuǎn)換以及通過以太網(wǎng)進(jìn)行數(shù)據(jù)發(fā)送。
硬件電路設(shè)計(jì)主要有6部分:主控制電路、壓力信號接收電路、模數(shù)轉(zhuǎn)換電路、存儲(chǔ)電路、以太網(wǎng)接口電路和輔助電路。
1.1 系統(tǒng)主控制器
本設(shè)計(jì)選用LPC2294處理器作為控制芯片。選擇該芯片是因LPC2294具有超強(qiáng)功能、低功耗以及豐富的片上資源,并帶有先進(jìn)的驗(yàn)收濾波器,提供了系統(tǒng)的集成度和復(fù)雜度,保證了系統(tǒng)的穩(wěn)定性。為確保系統(tǒng)對于堆棧和數(shù)據(jù)的存儲(chǔ),還外接了1 MB的16位SRAM存儲(chǔ)器IS61WV1024 16BLL。SRAM存儲(chǔ)器IS61LV102416BLL采用高性能CMOS技術(shù),其具有低功耗,訪問速度快,支持自動(dòng)刷新和自刷新功能。
1.2 壓力信號接收電路
為適應(yīng)不同類型的壓力傳感器輸出,本設(shè)計(jì)對每個(gè)傳感器接口設(shè)置了兩種接收電路并以跳線形式進(jìn)行選擇。壓力傳感器信號首先進(jìn)入接收電路,將相應(yīng)的電流信號轉(zhuǎn)化為電壓信號。在壓力信號進(jìn)行模數(shù)轉(zhuǎn)換前,為了避免信號的相互干擾,保證測試設(shè)備和被測試設(shè)備的安全,需協(xié)調(diào)其之間的電位差,以提高共模抑制比,信號先經(jīng)ISO124隔離運(yùn)算放大器芯片,可將其他雜波干擾濾除,防止其在隨后的模數(shù)轉(zhuǎn)換過程中造成測量數(shù)據(jù)與實(shí)際真值的偏差。經(jīng)ISO124的隔離凈化,信號送入AD7888模數(shù)轉(zhuǎn)換芯片將得到的模擬量轉(zhuǎn)化為數(shù)字量。
1.3 模數(shù)轉(zhuǎn)換電路
本設(shè)計(jì)中采用標(biāo)準(zhǔn)5 V電源對AD7888進(jìn)行供電,并將已轉(zhuǎn)換為電壓形式的模擬壓力信號分別送入模擬信號1~3引腳。由于LPC2294芯片的電平為3.3 V,而AD7888的電平為5 V。因此,LPC2294對AD7888的控制信號需要進(jìn)行電平轉(zhuǎn)換,這才能穩(wěn)定的對AD7888進(jìn)行控制。
設(shè)計(jì)中使用74LVC245進(jìn)行電平轉(zhuǎn)換,將來自LPC2294芯片的片選信號、時(shí)鐘信號以及數(shù)據(jù)輸入信號送入74LVC245,經(jīng)電平轉(zhuǎn)換后分別輸入給AD7888。因LPC2294可承受5 V電壓,所以將模數(shù)轉(zhuǎn)換后的輸出數(shù)據(jù)直接送入LPC2294的P0.28引腳。其具體電路如圖2所示。
1.4 以太網(wǎng)接口電路設(shè)計(jì)
以太網(wǎng)接口電路主要由DM9000E以太網(wǎng)控制器及HR601860網(wǎng)卡變壓器組成。DM9000E是由Davicom公司設(shè)計(jì)的一款低功耗、高集成、高速以太網(wǎng)控制芯片,其可與CPU直接相連,并支持10/100 Mbit·s-1以太網(wǎng)連接,且接口支持8位、16為32位不同的處理器。系統(tǒng)設(shè)計(jì)為兩個(gè)網(wǎng)口,一個(gè)主網(wǎng)口,另一個(gè)為冗余網(wǎng)口。系統(tǒng)中LPC2294與DM9000E采用16位總線方式進(jìn)行控制連接,并將其設(shè)定在100 MHz全雙工模式下。通過對LPC2294的CS2、CS3引腳進(jìn)行控制以實(shí)現(xiàn)輸出片選信號對兩個(gè)網(wǎng)口進(jìn)行選擇。電路設(shè)計(jì)方面將CS2、CS3與74HC245的引腳A2、A1進(jìn)行連接,并將74HC245B1、B2引腳分別與冗余網(wǎng)卡芯片及主網(wǎng)卡芯片的ANE引腳相連。再將兩個(gè)DM9000E芯片的CMD引腳與LPC2294的A2相連。可將主網(wǎng)卡芯片和冗余網(wǎng)卡芯片的數(shù)據(jù)端口地址與索引端口地址分別配置成為0x83800000、0x83800004和0x83400000、0x83400004。DM9000E的物理層發(fā)送和接收端口TXO+、TXO-、RXI+、RXI-分別與HR601680的TPOUT+、TPOUT-、TPIN+、TPIN-相連。如圖3所示。
2 軟件設(shè)計(jì)
系統(tǒng)在軟件設(shè)計(jì)中主要進(jìn)行了操作系統(tǒng)移植、TCP/IP的嵌入式開發(fā)環(huán)境實(shí)現(xiàn)及網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開發(fā)等內(nèi)容。由于傳感器數(shù)據(jù)是一種少量實(shí)時(shí)數(shù)據(jù),完整的TCP/IP在本系統(tǒng)中并不適用,所以對其進(jìn)行裁剪來節(jié)省資源提高實(shí)時(shí)性。本部分主要對TCP/IP嵌入式開發(fā)環(huán)境實(shí)現(xiàn)與網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開發(fā)進(jìn)行簡要說明,并對整體程序設(shè)計(jì)加以介紹。
2.1 系統(tǒng)相關(guān)數(shù)據(jù)報(bào)文結(jié)構(gòu)
由于本系統(tǒng)主要是完成對泵組進(jìn)行壓力信息采集并通過以太網(wǎng)向上位機(jī)進(jìn)行發(fā)送的過程,所以需處理的數(shù)據(jù)量較小,因此本泵艙信號轉(zhuǎn)換系統(tǒng)采用自定義的UDP數(shù)據(jù)報(bào)文封裝方式對所需傳輸?shù)臄?shù)據(jù)進(jìn)行封裝,并通過設(shè)定控制字來對不同功能的報(bào)文加以區(qū)分。
圖4為自定義UDP報(bào)文的具體封裝,其中前4字節(jié)為固定幀頭信息,用以表示本系統(tǒng)內(nèi)的數(shù)據(jù)報(bào)信息。除此之外,前20 bit還包括雙方IP地址、序列號等基本信息,余下20 bit后的內(nèi)容才是監(jiān)測數(shù)據(jù)信息。自定義UDP數(shù)據(jù)報(bào)文的數(shù)據(jù)域主要是由多個(gè)信息單元組成的,具體信息單元結(jié)構(gòu)如圖5所示。
信息內(nèi)容長度為8 bit,其中頭6 bit分別以2 bit一組標(biāo)識(shí)3組泵組壓力的相關(guān)信息,每組信息包括泵組工作狀態(tài)、通道工作狀態(tài)以及泵組的實(shí)時(shí)壓力數(shù)據(jù),其余2 bit為保留字節(jié)。以前2 bit的信息結(jié)構(gòu)為例,如圖6所示。
字節(jié)0的0~1位表示4種泵組工作狀態(tài):泵組未啟動(dòng)(00)、泵組啟動(dòng)(10)、通道未使用實(shí)時(shí)壓力信息置0(10)、通道自檢故障實(shí)時(shí)壓力信息置0(11)。
字節(jié)0的2~3位表示4種通道工作狀態(tài):自檢正常(00)、自檢狀態(tài)故障(01)、采集信息超限報(bào)警(10)、通道處于檢修狀態(tài)(11)。
其余12位信息表示泵組實(shí)時(shí)壓力,其他3組泵組信息結(jié)構(gòu)與其相同。
2.2 TCP/IP協(xié)議棧的裁剪與實(shí)現(xiàn)
TCP/IP是目前應(yīng)用最廣泛的網(wǎng)絡(luò)傳輸協(xié)議,雖該協(xié)議并不符合國際標(biāo)準(zhǔn)化組織的制定標(biāo)準(zhǔn),但其無疑是世界上用戶最多的計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議。TCP/IP是一個(gè)4層的協(xié)議系統(tǒng),每個(gè)層次均具有不同的協(xié)議,實(shí)現(xiàn)不同的通信功能。在嵌入式應(yīng)用環(huán)境下,TCP/IP仍保持著該結(jié)構(gòu),只是在具體協(xié)議的實(shí)現(xiàn)過程中,根據(jù)功能需要進(jìn)行了相應(yīng)的調(diào)整,可以滿足設(shè)計(jì)需要即可。嵌入式應(yīng)用環(huán)境下的TCP/IP協(xié)議結(jié)構(gòu)及各協(xié)議間的關(guān)系如圖7所示。
2.3 DM9000E驅(qū)動(dòng)程序設(shè)計(jì)
作為以太網(wǎng)的控制器,以太網(wǎng)控制芯片DM9000E的工作就是對報(bào)文形式的封裝和傳輸。具體的DM9000E驅(qū)動(dòng)程序設(shè)計(jì)包括設(shè)備的初始化、發(fā)送程序設(shè)計(jì)和接收程序設(shè)計(jì)。作為以太網(wǎng)的控制器,DM9000E的工作就是負(fù)責(zé)上面介紹的報(bào)文形式的封裝和傳輸。
對于DM9000E的初始化過程,首先調(diào)用預(yù)設(shè)的硬件初始化宏定義來完成各網(wǎng)口的硬復(fù)位,然后執(zhí)行軟復(fù)位的相關(guān)操作,如設(shè)置I/O模式、PHY寄存器及控制器工作狀態(tài)等內(nèi)容,并最終將MAC地址寫入MAC寄存器并激活網(wǎng)卡,初始化過程完成。具體的軟件設(shè)計(jì)流程如圖8所示。
當(dāng)應(yīng)用程序需經(jīng)過網(wǎng)絡(luò)傳遞數(shù)據(jù)時(shí),DM9000E配置相關(guān)寄存器的信息,并調(diào)用函數(shù)進(jìn)行發(fā)送。設(shè)計(jì)時(shí),設(shè)定DM9000E對于每包數(shù)據(jù)發(fā)送的最大嘗試次數(shù)為6,當(dāng)超過該值時(shí)就將該數(shù)據(jù)報(bào)丟棄。且DM9000E還支持雙緩沖區(qū)發(fā)送,能有效提高網(wǎng)絡(luò)傳輸數(shù)據(jù)率。另外,為了提高發(fā)送數(shù)據(jù)的實(shí)時(shí)性,可使用中斷方式啟動(dòng)發(fā)送函數(shù),由上層協(xié)議來調(diào)度。
DM9000E的數(shù)據(jù)包接收驅(qū)動(dòng)程序相對于發(fā)送較為復(fù)雜,在設(shè)計(jì)過程中將代碼放在臨界段,以防止在接收數(shù)據(jù)時(shí)程序意外中斷而產(chǎn)生數(shù)據(jù)包錯(cuò)誤等結(jié)果。而實(shí)現(xiàn)臨界段代碼的一個(gè)重要手段就是任務(wù)鎖,當(dāng)任務(wù)上鎖之后該進(jìn)程不允許中斷,直至代碼運(yùn)行結(jié)束后解鎖。若DM9000E順利接收到數(shù)據(jù)包,需判斷數(shù)據(jù)的位模式,以進(jìn)行不同的處理后寫入內(nèi)部緩沖區(qū),若數(shù)據(jù)長度及狀態(tài)均符合要求,通過調(diào)用以太網(wǎng)收包函數(shù)進(jìn)行下一步處理。
2.4 程序設(shè)計(jì)
信號轉(zhuǎn)換電路的主要功能是將壓力傳感器的數(shù)據(jù)接收并封裝經(jīng)網(wǎng)卡芯片發(fā)送至以太網(wǎng)。系統(tǒng)使用μC/OS-II實(shí)時(shí)操作系統(tǒng)作為系統(tǒng)平臺(tái),通過裁剪、移植使其在LPC2294控制器上順利運(yùn)行。此外,系統(tǒng)中移植了TCP/IP協(xié)議的核心功能函數(shù),并主要編寫了5個(gè)任務(wù)函數(shù),使其完成整個(gè)系統(tǒng)的核心功能,并通過μC/OS—II系統(tǒng)的任務(wù)調(diào)度管理機(jī)制來進(jìn)行系統(tǒng)資源的分配。
程序流程如圖9所示。系統(tǒng)首先建立設(shè)備初始化任務(wù)TaskA(),該任務(wù)主要完成上電自檢、網(wǎng)口斷線自檢、本機(jī)IP及兩路網(wǎng)口等網(wǎng)關(guān)參數(shù)的初始化等。在完成上述工作后,創(chuàng)建4個(gè)子任務(wù),按優(yōu)先級由高到低依次為TaskB()、TaskC()、TaskD()、TaskE()。其中4個(gè)子任務(wù)的具體功能如下:
TaskB、TaskC:分別接收來自上位機(jī)的以太網(wǎng)報(bào)文,其中TaskB接受UDP報(bào)文,TaskC接收TCP報(bào)文,并完成上位機(jī)對本模塊的參數(shù)設(shè)置,如IP地址,端口號報(bào)文發(fā)送方式(UDP或TCP)等。
TaskD:完成接收3路壓力傳感器數(shù)據(jù),并按照規(guī)定的傳輸方式,將數(shù)據(jù)封裝并發(fā)送到以太網(wǎng)。
TaskE:主要功能是定時(shí)發(fā)送特殊報(bào)文,如心跳報(bào)文、時(shí)統(tǒng)報(bào)文、工作狀態(tài)請求報(bào)文及設(shè)備診斷信息報(bào)文等。
3 實(shí)驗(yàn)測試
針對本泵艙信號轉(zhuǎn)換電路的驗(yàn)證,采用模塊調(diào)試的方式。首先進(jìn)行硬件電路板的調(diào)試,然后進(jìn)行軟件部分不同模塊的驅(qū)動(dòng)開發(fā)和系統(tǒng)調(diào)試。對于A/D模塊調(diào)試,采用給A/D采樣信道一個(gè)電壓值,用ADS1.2軟件仿真的方法查看轉(zhuǎn)換結(jié)果是否與理論值相符。測試時(shí)給輸入通道0輸入3 V參考電壓,理論滿量程為0x03FF,仿真結(jié)果為0x000003FA,其與理論值符合度較高。而對于以太網(wǎng)通信的調(diào)試,調(diào)試工具選用Tcp Udp測試工具軟件以及網(wǎng)絡(luò)協(xié)議分析器EtherPeek NX工具對數(shù)據(jù)報(bào)進(jìn)行捕捉分析。首先需對相關(guān)參數(shù)進(jìn)行設(shè)置,設(shè)定系統(tǒng)端口號為9211,上位機(jī)端口號為9210。系統(tǒng)采用C類IP地址,統(tǒng)一子網(wǎng)掩碼255.255.255.0,網(wǎng)關(guān)地址設(shè)置為192.1.103.1。本系統(tǒng)的IP地址為192.1.10 3.67,上位機(jī)的IP地址為192.1.103.66。通過對上位機(jī)發(fā)送的模擬數(shù)據(jù)進(jìn)行數(shù)據(jù)報(bào)捕捉,如圖10所示,數(shù)據(jù)信息經(jīng)由自定義UDP報(bào)頭、UDP協(xié)議、IP協(xié)議及以太網(wǎng)協(xié)議依次封裝進(jìn)行傳送,具體的壓力信息數(shù)據(jù)在信息單元后8 bit顯示出來,并通過對數(shù)據(jù)的解析可知曉3組泵處于啟動(dòng)狀態(tài)并自檢正常。通過測試,驗(yàn)證了以太網(wǎng)通信的良好性能。
4 結(jié)束語
在對船舶安全關(guān)注度日益提高的前提下,本文提出一種船舶泵艙信號轉(zhuǎn)換電路設(shè)計(jì),該設(shè)計(jì)方便對船用泵的工作狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測,以達(dá)到對異常狀態(tài)的提前預(yù)警。設(shè)計(jì)以ARM7系列LPC2294為核心控制器,配合其他芯片實(shí)現(xiàn)了將壓力傳感器輸出的壓力數(shù)據(jù)通過網(wǎng)卡傳送至以太網(wǎng)的通信功能。并通過實(shí)驗(yàn)驗(yàn)證了信號轉(zhuǎn)換系統(tǒng)的可靠性。此外,針對自動(dòng)化采集技術(shù)的誤判問題,下一步的研究方向可將采集到的數(shù)據(jù)進(jìn)行有效地?cái)?shù)據(jù)融合,用以提高數(shù)據(jù)準(zhǔn)確性,并減少誤判的發(fā)生。
評論