亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于國產(chǎn)MCU的電流輸出裝置的設(shè)計(jì)與實(shí)現(xiàn)

        2020-07-14 11:38:56蓓,何強(qiáng)

        葉 蓓,何 強(qiáng)

        (上海船舶運(yùn)輸科學(xué)研究所 艦船自動(dòng)化系統(tǒng)事業(yè)部,上海 200135)

        0 引 言

        國產(chǎn)芯片產(chǎn)業(yè)起步較晚,目前還不能滿足國內(nèi)市場(chǎng)的需求,且芯片產(chǎn)業(yè)與信息安全有著緊密的聯(lián)系,因此其戰(zhàn)略高度不容忽視。當(dāng)前在我國船舶自動(dòng)化系統(tǒng)領(lǐng)域,設(shè)計(jì)人員往往選用國外先進(jìn)的芯片來獲得較高的性能,但國外芯片在市場(chǎng)供應(yīng)和安全性上存在一定的不確定性,會(huì)帶來國家軍工安全方面的隱患,因此將國產(chǎn)芯片應(yīng)用到船舶自動(dòng)化系統(tǒng)領(lǐng)域中迫在眉睫[1]。

        在船舶自動(dòng)化領(lǐng)域,4~20 mA電流是一個(gè)非常重要的參數(shù),某些應(yīng)用場(chǎng)景對(duì)其輸出裝置有非常高的要求。4~20 mA電流輸出裝置常用于對(duì)現(xiàn)場(chǎng)儀表進(jìn)行控制,當(dāng)前儀表控制正朝著高精度、高穩(wěn)定性和高可靠性的方向快速發(fā)展。目前使用的基于CAN(Controller Area Network)現(xiàn)場(chǎng)總線的4~20 mA電流輸出裝置的軟件程序已固化,只能適用于單一的自動(dòng)化控制系統(tǒng),移植性和可維護(hù)性較差,若該裝置直接在新的自動(dòng)化控制系統(tǒng)中使用,需更改軟件程序。本文提出一種以CAN現(xiàn)場(chǎng)總線為基礎(chǔ),以國產(chǎn)芯片GD32F407為主控芯片,外部設(shè)備(以下簡(jiǎn)稱“外設(shè)”)配合多通道數(shù)模轉(zhuǎn)換器(Digital to Analog Converter, DAC)MAX5306,輸入CAN報(bào)文和輸出4~20 mA電流均可現(xiàn)場(chǎng)配置的電流輸出裝置設(shè)計(jì)方案,以該裝置的工作原理為基礎(chǔ),分別從硬件和軟件2方面探討該裝置的實(shí)現(xiàn)過程。

        1 工作原理

        該4~20 mA電流輸出裝置系統(tǒng)結(jié)構(gòu)框圖見圖1,主要由上層CAN現(xiàn)場(chǎng)總線網(wǎng)絡(luò)、MCU(Micro Control Unit)微控制器單元、數(shù)模轉(zhuǎn)換單元和儀表單元組成。在上層CAN現(xiàn)場(chǎng)總線網(wǎng)絡(luò)與MCU微控制器單元之間采用CAN通信隔離單元,以減少CAN現(xiàn)場(chǎng)總線網(wǎng)絡(luò)中不同測(cè)量裝置之間的電磁干擾。MCU微控制器單元是4~20 mA電流輸出裝置的主控單元,主要完成對(duì)上層CAN現(xiàn)場(chǎng)總線網(wǎng)絡(luò)中相關(guān)CAN報(bào)文的解析和數(shù)模轉(zhuǎn)換單元的控制。根據(jù)4~20 mA電流輸出裝置的CAN報(bào)文協(xié)議的要求,MCU微控制器單元對(duì)接收到的CAN報(bào)文進(jìn)行解析。數(shù)模轉(zhuǎn)換單元主要完成數(shù)字量到模擬量的轉(zhuǎn)換,并通過SPI(Serial Peripheral Interface)接口和MCU微控制器單元進(jìn)行通信;該單元根據(jù)預(yù)先設(shè)定的量程將解析到的相應(yīng)通道數(shù)值轉(zhuǎn)換成4~20 mA電流,繼而輸出4~20 mA電流驅(qū)動(dòng)相應(yīng)的儀表單元[2-3]。

        圖1 4~20 mA電流輸出裝置系統(tǒng)結(jié)構(gòu)框圖

        2 硬件設(shè)計(jì)與實(shí)現(xiàn)

        圖2 裝置硬件接口框圖

        該4~20 mA電流輸出裝置由核心板和基板組成,其對(duì)外接口主要由電源輸入接口、8路4~20 mA電流輸出接口、2路CAN通信接口和4個(gè)LED(Light-Emitting Diode)指示燈輸出組成,電流輸出范圍在4~20 mA,4~20 mA電流輸出裝置硬件接口框圖見圖2。

        2.1 MCU單元

        MCU芯片選用兆易創(chuàng)新的基于Cortex?-M4內(nèi)核的GD32F407微控制器芯片。該芯片具有功耗低、功能強(qiáng)、效率高和成本低等優(yōu)點(diǎn),最高主頻可達(dá) 168 MHz,并提供完整的DSP(Digital Signal Processing)指令集、并行計(jì)算能力和專用浮點(diǎn)運(yùn)算單元;為滿足多個(gè)外設(shè)同時(shí)運(yùn)行和嵌入式軟件協(xié)議棧資源開銷的需求,配備3 072 KB容量的內(nèi)置Flash和192 KB容量的SRAM(Static Random-Access Memory)。GD32F407微控制器芯片上集成有豐富的外設(shè)資源,包括12個(gè)定時(shí)器、6路UART、3路SPI總線、3路I2C總線、2路CAN控制器和1路10/100 M快速以太網(wǎng)控制器等外設(shè)資源,無需外接其他專用芯片即可滿足該裝置的各項(xiàng)功能和性能指標(biāo)的要求。

        雖然GD32F407微控制器芯片內(nèi)部集成有2路CAN控制器,但不能對(duì)系統(tǒng)外部的電源和干擾信號(hào)進(jìn)行有效抑制,因此在GD32F407微控制器與CAN現(xiàn)場(chǎng)總線網(wǎng)絡(luò)之間增加ADM3053芯片作為CAN現(xiàn)場(chǎng)總線收發(fā)器的CAN通信隔離單元。ADM3053是一款隔離式控制器區(qū)域網(wǎng)絡(luò)(CAN)物理層收發(fā)器,集成隔離DC/DC轉(zhuǎn)換器,能有效抑制外部干擾。

        2.2 數(shù)模轉(zhuǎn)換單元

        MAX5306是12位、8通道、低功耗、電壓輸出的DAC,采用節(jié)省空間的16引腳TSSOP封裝,電源電壓范圍較寬(+2.7~+5.5 V),電源電流每通道小于215 μA(最大),更適于在低功耗和低電壓情況下應(yīng)用。MAX5306具有軟件關(guān)斷功能,關(guān)斷時(shí)能將電源電流降低至1 μA;具有加載DAC(/LDAC)功能,可同時(shí)更新所有DAC的輸出,允許通過單個(gè)軟件命令,分別或同時(shí)更新輸入和DAC寄存器。

        3 軟件設(shè)計(jì)與實(shí)現(xiàn)

        3.1 裝置軟件總體結(jié)構(gòu)

        該4~20 mA電流輸出裝置軟件由基于時(shí)間觸發(fā)設(shè)計(jì)模式的軟件架構(gòu)編寫的調(diào)度器構(gòu)成,通過調(diào)度器能獲取最簡(jiǎn)單的協(xié)作式多任務(wù)操作系統(tǒng)。調(diào)度器是不同任務(wù)之間共享的定時(shí)器中斷服務(wù)程序,當(dāng)運(yùn)行多項(xiàng)任務(wù)時(shí),可使用同一臺(tái)調(diào)度器來完成。調(diào)度器中斷響應(yīng)函數(shù)是時(shí)間間隔為10 ms的“事件”,當(dāng)調(diào)度器被任務(wù)中的“事件”觸發(fā)之后,遍歷任務(wù)塊鏈表,根據(jù)任務(wù)的優(yōu)先級(jí)執(zhí)行需被調(diào)度執(zhí)行的任務(wù)[4]。

        圖3 裝置軟件總體結(jié)構(gòu)

        圖4 主程序流程

        4~20 mA電流輸出裝置的軟件總體結(jié)構(gòu)見圖3,軟件設(shè)計(jì)分為以下3部分:

        1)軟件平臺(tái)層與底層硬件相關(guān)的驅(qū)動(dòng),主要為芯片GD32F407的驅(qū)動(dòng),如CAN驅(qū)動(dòng)、SPI驅(qū)動(dòng)、TIMER驅(qū)動(dòng)、WDT驅(qū)動(dòng)和MAX5306驅(qū)動(dòng)等;

        2)協(xié)作式多任務(wù)調(diào)度器,主要完成調(diào)度器初始化、多任務(wù)創(chuàng)建、多任務(wù)執(zhí)行、多任務(wù)銷毀和調(diào)度器啟動(dòng)等;

        3)4~20 mA電流輸出裝置應(yīng)用程序設(shè)計(jì),如讀寫鐵電、4~20 mA電流輸出信號(hào)處理、CAN報(bào)文接收與發(fā)送和裝置標(biāo)定等。

        3.2 主程序

        主程序流程見圖4。4~20 mA電流輸出裝置首先需完成一系列初始化工作,隨后進(jìn)入標(biāo)定過程,從鐵電中讀取標(biāo)定狀態(tài)標(biāo)志位。若標(biāo)志位提示已標(biāo)定,從鐵電中讀出標(biāo)定值;若標(biāo)志位提示未標(biāo)定,則需標(biāo)定下限4 mA和上限20 mA。在標(biāo)定下限4 mA時(shí),按標(biāo)定協(xié)議發(fā)送CAN報(bào)文,采用萬用表電流檔測(cè)量該通道的電流值,直至測(cè)量電流值為4 mA,繼而將CAN報(bào)文標(biāo)定值存儲(chǔ)到鐵電中。同理,可標(biāo)定上限20 mA。參數(shù)設(shè)定包括CAN報(bào)文參數(shù)設(shè)定和各通道參數(shù)設(shè)定,在首次使用該裝置時(shí)必須對(duì)其進(jìn)行參數(shù)設(shè)定。最后,創(chuàng)建數(shù)據(jù)發(fā)送任務(wù)SendMsgTask、狀態(tài)顯示任務(wù)ErrStateTask和數(shù)據(jù)處理任務(wù)MsgProcessTask,啟動(dòng)調(diào)度器,按設(shè)定的調(diào)度時(shí)間遍歷任務(wù)鏈表。

        3.3 參數(shù)設(shè)定流程

        該4~20 mA電流輸出裝置最大的優(yōu)點(diǎn)是首次完成程序燒寫之后,應(yīng)用到后續(xù)其他場(chǎng)景時(shí)無需再進(jìn)行程序燒寫,僅需按參數(shù)設(shè)定協(xié)議配置參數(shù),靈活方便,能大大縮短開發(fā)周期。因此,參數(shù)設(shè)定流程是4~20 mA電流輸出裝置的核心,對(duì)該裝置燒寫程序之后,需首先進(jìn)入?yún)?shù)設(shè)定流程,否則裝置無法正常工作。CAN通信接口是該裝置對(duì)外的唯一通信接口,裝置只有通過對(duì)接收到的CAN報(bào)文進(jìn)行解析,按參數(shù)設(shè)定協(xié)議將其轉(zhuǎn)換為相關(guān)通道的工作參數(shù),并存儲(chǔ)到相應(yīng)地址的鐵電中,才能正常工作。參數(shù)設(shè)定流程主要由CAN報(bào)文參數(shù)設(shè)定流程和各通道輸出參數(shù)設(shè)定流程組成。

        3.3.1 CAN報(bào)文參數(shù)設(shè)定

        CAN報(bào)文參數(shù)設(shè)定主要由該裝置的心跳CAN報(bào)文輸出設(shè)定和各通道4~20 mA輸出參數(shù)設(shè)定組成。裝置周期性地發(fā)送CAN報(bào)文信號(hào),向CAN現(xiàn)場(chǎng)總線網(wǎng)絡(luò)中的其他節(jié)點(diǎn)通告本節(jié)點(diǎn)的狀態(tài)。定義CAN報(bào)文結(jié)構(gòu)體CanFrame,包括CAN報(bào)文的ID(Identity Document)號(hào)、類型、格式、長(zhǎng)度、數(shù)據(jù)字節(jié)數(shù)組和發(fā)送周期。CAN報(bào)文參數(shù)設(shè)定流程見圖5。

        1)判斷讀到的CAN報(bào)文是否符合該CAN報(bào)文參數(shù)設(shè)定協(xié)議的要求,若不符合,跳轉(zhuǎn)到步驟11);否則跳轉(zhuǎn)到步驟2);

        2)參照制訂的CAN報(bào)文參數(shù)設(shè)定協(xié)議,判斷是心跳CAN報(bào)文輸出設(shè)定,還是各通道輸出4~20 mA參數(shù)設(shè)定,由此初始化鐵電的首地址,跳轉(zhuǎn)到步驟3);

        3)判斷命令字是否為寫命令字,若是,則跳轉(zhuǎn)到步驟4),否則跳轉(zhuǎn)到步驟7);

        4)參照制訂的CAN報(bào)文參數(shù)設(shè)定協(xié)議解析CAN報(bào)文,判斷CAN報(bào)文是否符合設(shè)定的CAN報(bào)文的ID號(hào)、類型、格式、長(zhǎng)度、數(shù)據(jù)字節(jié)數(shù)組和發(fā)送周期中的一種,將寫鐵電的地址與相應(yīng)類型的偏移量相加,跳轉(zhuǎn)到步驟5);

        5)將解析到的CAN報(bào)文參數(shù)寫入鐵電相應(yīng)的地址中,跳轉(zhuǎn)到步驟6);

        6)返回寫CAN報(bào)文參數(shù)設(shè)定的狀態(tài)值,跳轉(zhuǎn)到步驟7);

        7)判斷命令字是否為讀命令字,若是,則跳轉(zhuǎn)到步驟8),否則跳轉(zhuǎn)到步驟11);

        8)參照制訂的CAN報(bào)文參數(shù)設(shè)定協(xié)議對(duì)CAN報(bào)文進(jìn)行解析,判斷解析的CAN報(bào)文為設(shè)定CAN報(bào)文的ID號(hào)、類型、格式、長(zhǎng)度、數(shù)據(jù)字節(jié)數(shù)組和發(fā)送周期中的哪一種,將讀鐵電的地址與相應(yīng)類型的偏移量相加,跳轉(zhuǎn)到步驟9);

        9)從鐵電的相應(yīng)地址中讀取所需內(nèi)容,跳轉(zhuǎn)到步驟10);

        10)返回讀CAN報(bào)文參數(shù)設(shè)定的狀態(tài)值,跳轉(zhuǎn)到步驟11);

        11)CAN報(bào)文參數(shù)設(shè)定過程結(jié)束,進(jìn)入創(chuàng)建任務(wù)過程。

        圖5 參數(shù)設(shè)定流程

        3.3.2 各通道輸出參數(shù)設(shè)定

        通道輸出參數(shù)設(shè)定流程與CAN報(bào)文參數(shù)設(shè)定流程基本上一致,各通道參數(shù)都是可配置的,具體可參照CAN報(bào)文參數(shù)設(shè)定流程。定義通道輸出參數(shù)結(jié)構(gòu)體AoParam,其變量及說明見表1,假設(shè)定義通道1的結(jié)構(gòu)體變量為AO1,其所有變量都需通過CAN報(bào)文配置,配置完成之后通道1才能正常工作。AO1.revCan為通道1設(shè)定的接收的自定義CAN報(bào)文;AO1.inVal為通道1接收的初始值。

        表1 結(jié)構(gòu)體AoParam解析

        圖6 數(shù)據(jù)處理任務(wù)流程

        按通道輸出參數(shù)設(shè)定的協(xié)議要求,通道接收的輸入數(shù)值上下限和輸出數(shù)值上下限已確定,在已知通道接收的初始值的情況下,可根據(jù)線性關(guān)系計(jì)算出該通道初始值轉(zhuǎn)換之后的4~20 mA輸出值,計(jì)算式為

        outVal=send[0]+(inVal-rev[0])×(send[1]-

        send[0])/(rev[1]-rev[0])

        (1)

        式(1)中:rev[0]≤inVal≤rev[1];send[0]≤outVal≤send[1];rev[0]

        通過式(1)可得出通道1接收到的初始值轉(zhuǎn)換之后的輸出值A(chǔ)O1.outVal。先將AO1.outVal轉(zhuǎn)換為MAX5306相應(yīng)的寄存器值A(chǔ)O1.regVal,再將AO1.regVal寫入MAX5306,即可輸出相應(yīng)的4~20 mA值,依照此步驟可完成其他通道的4~20 mA值的輸出。

        3.4 數(shù)據(jù)處理任務(wù)

        數(shù)據(jù)處理任務(wù)流程見圖6,該任務(wù)主要是接收通道設(shè)定的相應(yīng)CAN報(bào)文并輸出相應(yīng)的4~20 mA值。首先,判斷CAN報(bào)文接收緩沖區(qū)是否有CAN報(bào)文:若沒有CAN報(bào)文,則通知Schedule OS 1 Ticks,調(diào)度器等待10 ms結(jié)束該任務(wù);若有CAN報(bào)文,則根據(jù)通道判斷該報(bào)文是否是該通道設(shè)定的CAN報(bào)文。若該報(bào)文不是該通道設(shè)定的CAN報(bào)文,則依次判斷是否是下一通道設(shè)定的CAN報(bào)文參數(shù),當(dāng)i≥8時(shí),通知Schedule OS 1 Ticks,調(diào)度器等待10 ms結(jié)束該任務(wù);若該報(bào)文是該通道設(shè)定的CAN報(bào)文,則按該通道的參數(shù)設(shè)定流程讀取CAN報(bào)文中該通道相應(yīng)的通道值。其次,將讀取的通道值轉(zhuǎn)換為相應(yīng)的MAX5306通道輸出值。最后,將通道輸出值寫入MAX5306中,輸出相應(yīng)通道的4~20 mA驅(qū)動(dòng)儀表。按上述過程依次判斷下一通道,不再贅述。

        4 試驗(yàn)數(shù)據(jù)結(jié)果分析

        將該4~20 mA電流輸出裝置應(yīng)用到某主動(dòng)力系統(tǒng)中,使用周立功USBCAN-II模塊配合CANTest軟件向該裝置發(fā)送各通道的輸入CAN報(bào)文,同時(shí)使用萬用表電流檔測(cè)量各通道的電流輸出值,試驗(yàn)數(shù)據(jù)統(tǒng)計(jì)見表2。

        表2 試驗(yàn)數(shù)據(jù)統(tǒng)計(jì)

        由表2可知,誤差幾乎無差異,符合該裝置的設(shè)計(jì)要求。試驗(yàn)結(jié)果表明,該裝置的輸出電流誤差小于0.1 mA,輸入與輸出多樣化,且二者呈線性關(guān)系,配置靈活方便,可滿足實(shí)際應(yīng)用需求。

        5 結(jié) 語

        本文以CAN現(xiàn)場(chǎng)總線為基礎(chǔ),以國產(chǎn)芯片GD32F407為主控芯片,外設(shè)配合數(shù)模轉(zhuǎn)換器MAX5306,設(shè)計(jì)實(shí)現(xiàn)了一種輸入CAN報(bào)文、輸出4~20 mA均可現(xiàn)場(chǎng)配置的電流輸出裝置。該裝置測(cè)量精度高,測(cè)量誤差小,運(yùn)行穩(wěn)定可靠,抗干擾能力強(qiáng),誤差在0.1 mA以內(nèi),能滿足各類對(duì)儀表控制要求較高的船舶應(yīng)用場(chǎng)景的需求。該裝置的設(shè)計(jì)方案做到了軟件程序固化,后續(xù)開發(fā)無需重新編寫軟件程序,能大大縮短開發(fā)周期,可供后續(xù)船舶自動(dòng)化系統(tǒng)國產(chǎn)化相關(guān)裝置的開發(fā)和改進(jìn)參考。

        国产做床爱无遮挡免费视频| 亚洲av无码久久精品蜜桃| 亚洲av片不卡无码久久| 久久免费精品国产72精品剧情| 国产精品亚洲av无人区二区| 玖玖色玖玖草玖玖爱在线精品视频| 最新中文字幕av无码不卡| 精品高潮呻吟99av无码视频| 日韩久久无码免费看A| 日本免费看片一区二区三区| 无码国产精品久久一区免费| 欧美丰满熟妇乱xxxxx图片| 色婷婷精品综合久久狠狠| 国产精品久久婷婷六月丁香| 国内精品久久久久国产盗摄| 97精品伊人久久大香线蕉| 亚欧同人精品天堂| 久久久精品亚洲人与狗| 亚洲国产成人av在线观看| 国产精品美女久久久久久2018| 国产三级在线看完整版| 伊人加勒比在线观看视频| 无码国产福利av私拍| 久久久久久人妻精品一区百度网盘 | 欧美性生交大片免费看app麻豆| 久久99精品久久久久久秒播| 欧美视频九九一区二区| 国产盗摄一区二区三区av| 欧美性高清另类videosex| 欧美疯狂性xxxxxbbbbb| 丰满少妇棚拍无码视频| 一区二区三区av在线| 国产精品人妻一码二码| 国产精品亚洲欧美天海翼| 99久久精品国产一区色| 亚洲中国精品精华液| 成人一区二区免费视频| 内谢少妇xxxxx8老少交| 国产美女高潮流白浆在线观看 | 亚洲成人电影在线观看精品国产| 日韩av免费在线不卡一区|