王皆歡, 邱怡岑
(上海船舶運(yùn)輸科學(xué)研究所,上海 200135)
MA32XX系列的32點(diǎn)測(cè)量模塊已使用較長(zhǎng)時(shí)間,該測(cè)量模塊立足于滿足當(dāng)時(shí)用戶對(duì)機(jī)艙設(shè)備參數(shù)分布式測(cè)量需求,實(shí)現(xiàn)不同類型傳感器信號(hào)的獨(dú)立采集。32點(diǎn)測(cè)量模塊包含3組放大器,可同時(shí)進(jìn)行3類傳感器信號(hào)的采集,根據(jù)現(xiàn)場(chǎng)使用的不同需求,衍生出各類測(cè)量模塊。測(cè)量模塊可根據(jù)不同船型或不同類型的傳感器測(cè)量的需求,將毫安信號(hào)(4~20 mA),PT100(0~100 ℃,0~200 ℃,0~600 ℃),EU2(0~800 ℃),電壓輸入(0~10 V)及開(kāi)關(guān)量信號(hào)進(jìn)行系統(tǒng)的整合。
此模塊的設(shè)計(jì)思路是將輸入信號(hào)調(diào)制到0~5 V范圍內(nèi),CPU模塊通過(guò)單片機(jī)內(nèi)置的A/D、外置D/A和脈沖寬度調(diào)制(Pulse Width Modulation, PWM)構(gòu)成的輸出反饋系統(tǒng),可逐步調(diào)整信號(hào)的零點(diǎn)和量程,調(diào)整結(jié)束后將模擬量轉(zhuǎn)換為數(shù)字量,并完成信號(hào)數(shù)字濾波、非線性補(bǔ)償及數(shù)據(jù)傳輸?shù)裙δ?。測(cè)量模塊采用自適應(yīng)控制,根據(jù)不同的環(huán)境溫度可調(diào)節(jié)放大電路的零點(diǎn)和量程,以保證測(cè)量模塊在整個(gè)工作環(huán)境范圍內(nèi)正常工作,滿足測(cè)量的精度要求(見(jiàn)圖1)。
圖1 32點(diǎn)測(cè)量模塊硬件框圖
該設(shè)計(jì)使用模擬電路完成測(cè)量模塊故障判斷和模擬電壓反饋的方式實(shí)現(xiàn)數(shù)據(jù)標(biāo)定功能,以此實(shí)現(xiàn)信號(hào)采集的精度要求,但也帶來(lái)了一些問(wèn)題。
1) 零點(diǎn)量程調(diào)節(jié)不便
由于調(diào)節(jié)手段為反饋式動(dòng)態(tài)調(diào)節(jié),通過(guò)不斷改變數(shù)字模擬轉(zhuǎn)換器(Digital to Analog Converter, DAC)參考電壓,改變DAC輸出,從而調(diào)整標(biāo)定信號(hào)量程,直至滿足設(shè)定情況位置,零點(diǎn)調(diào)整則通過(guò)PWM反饋完成。因此每當(dāng)進(jìn)行電位器調(diào)節(jié)后,需要一定的時(shí)間進(jìn)行穩(wěn)定,實(shí)時(shí)性相對(duì)較差不利于現(xiàn)場(chǎng)調(diào)試。
2) 模擬電路多使用分立器件,反饋調(diào)節(jié)電路因焊接質(zhì)量及電子器件質(zhì)量等原因,在模塊調(diào)試及現(xiàn)場(chǎng)使用過(guò)程中造成了不小的麻煩,對(duì)測(cè)量模塊可靠性造成影響。
3) 由于測(cè)量模塊在未進(jìn)入設(shè)定的標(biāo)定量程范圍內(nèi)不進(jìn)行正常工作,測(cè)量模塊現(xiàn)場(chǎng)運(yùn)行環(huán)境相對(duì)較差,溫度、濕度及振動(dòng)等原因都會(huì)導(dǎo)致標(biāo)定電位器阻值偏差,可能進(jìn)入非工作狀態(tài),存在誤報(bào)警隱患。
4) 模塊標(biāo)定方式為同類通道統(tǒng)一標(biāo)定,對(duì)于某個(gè)通道因?yàn)椴蓸与娮璨町惢騻鞲衅鬏敵霾町惍a(chǎn)生的測(cè)量偏差無(wú)法進(jìn)行調(diào)節(jié),采用2線制設(shè)計(jì)的電阻線阻根據(jù)不同環(huán)境需調(diào)整補(bǔ)償值,現(xiàn)場(chǎng)變更操作困難。
針對(duì)以上問(wèn)題,采用Advanced RISC Machine(ARM)架構(gòu)的LPC 1778芯片和高精度A/D轉(zhuǎn)換芯片ADS 1256的硬件架構(gòu)實(shí)現(xiàn)信號(hào)采集功能,軟件設(shè)計(jì)上引入多任務(wù)系統(tǒng),結(jié)合CANopen對(duì)象字典的結(jié)構(gòu)[1]實(shí)現(xiàn)模塊信號(hào)標(biāo)定和單通道的局部調(diào)整功能。
改型設(shè)計(jì)在原有功能不變的前提下,完善及擴(kuò)展測(cè)量模塊的各項(xiàng)功能,通過(guò)下位機(jī)軟件實(shí)現(xiàn)測(cè)量模塊的外部信號(hào)標(biāo)定,通過(guò)對(duì)象字典實(shí)現(xiàn)指定通道參數(shù)調(diào)整、實(shí)現(xiàn)波特率的調(diào)整及增加硬件通道定位的調(diào)試模式等。為能完全兼容上一代模塊,改型設(shè)計(jì)在確保所有接口形式不變、通訊協(xié)議不變及外形尺寸不變的前提下,從軟件、硬件兩方面進(jìn)行設(shè)計(jì)。
圖2 測(cè)量模塊改型設(shè)計(jì)后的硬件框圖
測(cè)量模塊改型設(shè)計(jì)后的硬件框圖見(jiàn)圖2,CPU板通過(guò)接插件與數(shù)據(jù)采集板相連,實(shí)現(xiàn)數(shù)據(jù)運(yùn)算、數(shù)據(jù)通信和信號(hào)存儲(chǔ)等功能。數(shù)據(jù)采集板通過(guò)外部接口與外部信號(hào)傳感器相連,實(shí)現(xiàn)信號(hào)的模數(shù)轉(zhuǎn)換及控制信號(hào)隔離等功能。
測(cè)量基板放棄原有動(dòng)態(tài)調(diào)整測(cè)量的設(shè)計(jì),新設(shè)計(jì)使用基于ARM Cortex-M3的LPC 1778微控制器及AT 24C02鐵電存儲(chǔ)器,實(shí)現(xiàn)數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)通信等功能,模數(shù)轉(zhuǎn)換部分使用高精度的ADS 1256芯片,實(shí)現(xiàn)高精度及低噪數(shù)據(jù)轉(zhuǎn)換。
32路信號(hào)采集通道由五組電子開(kāi)關(guān)CD 4051通過(guò)片選形式,完成各通道采集信號(hào)的切換輸出,3組零點(diǎn)量程標(biāo)準(zhǔn)信號(hào)接口分別位于前三組CD 4051的起始兩路,根據(jù)采集信號(hào)的不同對(duì)信號(hào)接口稍微進(jìn)行改動(dòng),即可實(shí)現(xiàn)不同種類信號(hào)的采集功能,其部分信號(hào)接口見(jiàn)圖3。
圖3 信號(hào)采集接口
1) 4~20 mA信號(hào)連接方式。當(dāng)輸入是4~20 mA電流信號(hào)時(shí),去除電路中的上拉電阻2 000 Ω和下拉電阻250 Ω,使電流在取樣電阻上形成電壓,增加了限流模塊防止進(jìn)行測(cè)量時(shí)的瞬間電流沖擊。
2) 0~10 V信號(hào)連接方式。當(dāng)輸入是0~10 V電壓信號(hào)時(shí),去除電路中的上拉電阻2 000 Ω和采樣電阻100 Ω,F(xiàn)以0 Ω電阻連接,電壓經(jīng)過(guò)電阻分壓后,可使AD芯片上的電壓在采樣范圍內(nèi)。
3) 熱電偶信號(hào)連接方式。當(dāng)輸入信號(hào)為mV熱電偶信號(hào)時(shí),去除電路中的上拉電阻2 000 Ω、采樣電阻100 Ω和下拉電阻250 Ω后,直接進(jìn)行測(cè)量。
4) 熱電阻信號(hào)連接方式。當(dāng)輸入信號(hào)為Pt熱電阻信號(hào)時(shí),可不考慮線阻影響(由軟件補(bǔ)償實(shí)現(xiàn)),去除電路中的采樣電阻100 Ω和下拉電阻250 Ω,分壓后對(duì)AD芯片進(jìn)行測(cè)量。
當(dāng)輸入信號(hào)為開(kāi)關(guān)量信號(hào)時(shí),通過(guò)熱電阻信號(hào)進(jìn)行測(cè)量,在軟件配置中識(shí)別。
A/D轉(zhuǎn)換部分主要使用德州儀器的ADS1256 24位高性能模數(shù)轉(zhuǎn)換器(見(jiàn)圖4),該芯片支持8通道單極輸入采集,該設(shè)計(jì)中使用AIN0~AIN5接口完成對(duì)CD 4051輸出口的接入,采樣速率高達(dá)30 ksps(千次采樣每秒),非線性度±0.001%,可滿足改型設(shè)計(jì)的測(cè)量模塊采集通道切換時(shí)間的技術(shù)要求,芯片使用串行外設(shè)接口(Serial Peripheral Interface, SPI)通訊接口[2],應(yīng)用軟件可通過(guò)調(diào)用底層SPI驅(qū)動(dòng)完成對(duì)ADS 1256模數(shù)轉(zhuǎn)換器的各類操作。
1.2.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
32點(diǎn)改型設(shè)計(jì)測(cè)量模塊使用與原設(shè)計(jì)不同的標(biāo)定和故障處理方式,原設(shè)計(jì)硬件部分實(shí)現(xiàn)的功能將盡可能由軟件實(shí)現(xiàn)。
軟件設(shè)計(jì)總體思路即在保持原用通訊協(xié)議的基礎(chǔ)上,根據(jù)控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)通訊協(xié)議對(duì)模塊的CAN通訊進(jìn)行應(yīng)用層的封裝,結(jié)合CANopen協(xié)議的形式建立對(duì)象字典,可通過(guò)CAN通訊對(duì)參數(shù)進(jìn)行必要的讀取和修改,實(shí)現(xiàn)標(biāo)定參數(shù)整定等功能。系統(tǒng)軟件結(jié)構(gòu)框圖見(jiàn)圖5。
圖4 A/D轉(zhuǎn)換電路
圖5 系統(tǒng)軟件結(jié)構(gòu)框圖
最上層的模塊應(yīng)用程序主要通過(guò)核心調(diào)度器完成信號(hào)采集、數(shù)據(jù)通信及故障報(bào)警等任務(wù)功能模塊,實(shí)現(xiàn)任務(wù)的優(yōu)先分配、任務(wù)間的內(nèi)容關(guān)聯(lián)及任務(wù)間的數(shù)據(jù)通訊等功能。
驅(qū)動(dòng)層軟件主要由信息采集芯片驅(qū)動(dòng)、SPI總線驅(qū)動(dòng)、IO驅(qū)動(dòng)及CAN接口驅(qū)動(dòng)等部分構(gòu)成。
數(shù)據(jù)采集值的數(shù)據(jù)結(jié)構(gòu)體通過(guò)SPI總線驅(qū)動(dòng)和采集芯片驅(qū)動(dòng)程序設(shè)計(jì)采集、組裝、存儲(chǔ)及校準(zhǔn)等功能的算法與函數(shù)。數(shù)據(jù)通路自底向上,同時(shí)與網(wǎng)絡(luò)通信數(shù)據(jù)交互。開(kāi)關(guān)量及LED等狀態(tài),依托于IO驅(qū)動(dòng)實(shí)現(xiàn)。
圖6 上層任務(wù)模型
數(shù)據(jù)采集任務(wù)包含常規(guī)數(shù)據(jù)采集和數(shù)據(jù)標(biāo)定兩部分,數(shù)據(jù)標(biāo)定過(guò)程規(guī)定了模塊外接信號(hào)的觸發(fā)條件,根據(jù)寄存器標(biāo)志位及外部硬件跳線的不同接插情況進(jìn)行指定輸入類型的采集信號(hào)的零點(diǎn)量程的采集及存儲(chǔ),常規(guī)采集過(guò)程通過(guò)標(biāo)準(zhǔn)的標(biāo)定值完成A/D轉(zhuǎn)換后的數(shù)據(jù)運(yùn)算。
CAN通信任務(wù)包含CAN的收發(fā)功能,CAN接收過(guò)程主要實(shí)現(xiàn)對(duì)象字典查詢功能,CAN發(fā)送過(guò)程完成A/D數(shù)據(jù)處理后的封裝及發(fā)送,對(duì)象字典操作的反饋和標(biāo)準(zhǔn)的心跳報(bào)文。
故障報(bào)警任務(wù)實(shí)現(xiàn)初始化過(guò)程和正常運(yùn)行過(guò)程中出現(xiàn)硬件故障的指示燈顯示和串口通訊邏輯。
1.2.2標(biāo)定設(shè)計(jì)
1.2.2.1整體標(biāo)定方法
系統(tǒng)在初始化硬件過(guò)程中會(huì)讀取鐵電標(biāo)定標(biāo)志位,如果標(biāo)志位有效則讀取對(duì)應(yīng)標(biāo)定值更新至對(duì)象字典,開(kāi)始常規(guī)數(shù)據(jù)采集任務(wù)。當(dāng)外部信號(hào)需要標(biāo)定時(shí),需讀取板載跳線標(biāo)定信號(hào),根據(jù)信號(hào)情況進(jìn)行指定類型通道的標(biāo)定。
具體實(shí)現(xiàn)過(guò)程是當(dāng)啟動(dòng)標(biāo)定后,讀取選擇通道的零點(diǎn)和量程的輸入信號(hào),計(jì)算A/D轉(zhuǎn)換值,將對(duì)應(yīng)的值更新至對(duì)象字典,同時(shí)將轉(zhuǎn)換值更新至鐵電存儲(chǔ)器,并刷新對(duì)應(yīng)的標(biāo)志位。具體標(biāo)定流程見(jiàn)圖7。
1.2.2.2局部調(diào)整方法
整體標(biāo)定結(jié)束后,特定種類的信號(hào)量的線性關(guān)系基本確定,需對(duì)特定采集端口進(jìn)行微調(diào),可采用對(duì)象字典的方式進(jìn)行操作。在對(duì)象字典用戶區(qū)創(chuàng)建一段數(shù)據(jù)空間,定義各通道的零點(diǎn)值、量程值及偏移量補(bǔ)償值等,通過(guò)服務(wù)數(shù)據(jù)對(duì)象(Service Data Objects, SDO)通訊協(xié)議[3]對(duì)特定對(duì)象字典進(jìn)行操作。SDO通訊協(xié)議見(jiàn)圖8。
圖7 標(biāo)定流程圖8 SDO協(xié)議
設(shè)計(jì)中使用數(shù)據(jù)字典索引地址0x3100~0x3200,包含32通道的參數(shù)信息,其中包含每個(gè)單元分配2字節(jié)的高位標(biāo)定值索引、2字節(jié)的低位標(biāo)定值索引、2字節(jié)模塊類型索引和2字節(jié)補(bǔ)償值索引等。
在完成設(shè)計(jì)后對(duì)改型后的測(cè)量模塊進(jìn)行性能驗(yàn)證,測(cè)試目標(biāo)為12路4~20 mA,11路開(kāi)關(guān)量,9路PT 100(0~200 ℃)的32點(diǎn)測(cè)量模塊。其通信結(jié)果見(jiàn)圖9。
圖9 數(shù)據(jù)通信
數(shù)據(jù)刷新及其心跳報(bào)文根據(jù)軟件時(shí)顯示,刷新時(shí)間約為1 s,滿足設(shè)計(jì)要求。
對(duì)目標(biāo)模塊第1個(gè)測(cè)量類型(即4~20 mA)的零點(diǎn)進(jìn)行訪問(wèn),訪問(wèn)格式為600+NodeId(NodeId :0x1f-0x1e=0x1),索引為00, 讀取值為0x1654,與默認(rèn)值相符(見(jiàn)圖10)。
圖10 字典查詢
同樣對(duì)該值進(jìn)行任意數(shù)值寫入操作,可以看到返回值以60開(kāi)頭,說(shuō)明修改成功。
對(duì)測(cè)試目標(biāo)的第一路(4~20 mA),第十三路(PT100)分別接入12 mA和138.50 Ω(100 ℃)。采集結(jié)果見(jiàn)圖12,第一路電流示數(shù)為0x202,轉(zhuǎn)換實(shí)際顯示值為12.03 mA,第十三路電阻為0x1fe,轉(zhuǎn)換實(shí)際顯示值為99.61 ℃,精度滿足設(shè)計(jì)要求。測(cè)試結(jié)果表明,改型設(shè)計(jì)后的模塊各項(xiàng)功能指標(biāo)均滿足改型要求。
圖11 字典修改
圖12 信號(hào)采集
通過(guò)對(duì)原有MA32XX 32點(diǎn)測(cè)量模塊進(jìn)行分析,對(duì)原有設(shè)計(jì)進(jìn)行改良和功能擴(kuò)展,數(shù)據(jù)采集端加入限流模塊防止瞬間電流沖擊,改變?cè)袠?biāo)定方式,并在實(shí)現(xiàn)外部標(biāo)定功能的前提下,通過(guò)對(duì)象字典的操作增加單通道整定功能,實(shí)現(xiàn)各采集通道的環(huán)境適應(yīng)性。此外,增加額外功能如波特率配置、通道鎖定及串口通訊等,在原有模塊功能不變的前提下,進(jìn)一步提升了模塊的可擴(kuò)展性及可操作性。改型后的模塊各項(xiàng)性能符合設(shè)計(jì)要求,目前該測(cè)量模塊已通過(guò)測(cè)試驗(yàn)證階段,將逐步投入正常的生產(chǎn)調(diào)試流程中。