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

        ?

        輪機(jī)模擬器I/O單元遠(yuǎn)程升級設(shè)計(jì)

        2016-10-12 03:44:19王德龍王冬捷姜瑞政
        中國航海 2016年3期
        關(guān)鍵詞:單片機(jī)界面程序

        王德龍, 王冬捷, 姜瑞政

        (大連海事大學(xué) 輪機(jī)工程學(xué)院, 遼寧 大連 116026)

        輪機(jī)模擬器I/O單元遠(yuǎn)程升級設(shè)計(jì)

        王德龍, 王冬捷, 姜瑞政

        (大連海事大學(xué) 輪機(jī)工程學(xué)院, 遼寧 大連 116026)

        P89V51RD2單片機(jī)通過驅(qū)動(dòng)網(wǎng)絡(luò)芯片W5100實(shí)現(xiàn)與以太網(wǎng)的聯(lián)系。借助在應(yīng)用中編程(In-Application Programming, IAP)的功能,實(shí)現(xiàn)在運(yùn)行中對輪機(jī)模擬器I/O單元程序的讀取、擦除和燒寫。在計(jì)算機(jī)上用MATLAB的圖形用戶界面(Graphical User Interface, GUI)設(shè)計(jì)遠(yuǎn)程主機(jī)升級界面,創(chuàng)建網(wǎng)絡(luò)端口;通過以太網(wǎng)發(fā)送HEX可執(zhí)行文件,實(shí)現(xiàn)對輪機(jī)模擬器I/O單元運(yùn)行程序的遠(yuǎn)程升級。

        船舶工程; 輪機(jī)模擬器; 單片機(jī); 以太網(wǎng); 在應(yīng)用中編程(IAP); 圖形用戶界面(GUI)

        Abstract: The microcontroller P89V51RD2 drives the network chip W5100 to achieve the Ethernet connection, which makes it possible that one read, erase and program the code when the microcontroller program is running by means of the In-Application Programming (IAP). The remote host update interface is developed with MATLAB Graphical User Interface (GUI) on a PC. A network port to send HEX records via the Ethernet network is created. This design allows the input and output unit microcontroller programs of the marine engine room simulator to be updated remotely.

        Keywords: ship engineering; marine engine room simulator; microcontroller; Ethernet; IAP; GUI

        隨著大連海事大學(xué)輪機(jī)自動(dòng)化實(shí)驗(yàn)室開發(fā)的全任務(wù)輪機(jī)模擬器逐漸在各個(gè)實(shí)訓(xùn)基地推廣和改進(jìn),為方便后續(xù)升級維護(hù),對其使用的板卡(輪機(jī)模擬器I/O單元)進(jìn)行遠(yuǎn)程升級成為亟待解決的問題。

        傳統(tǒng)的單片機(jī)編程方式是在焊接到印刷電路板之前使用并行燒寫器將代碼燒寫到Flash中;現(xiàn)在單片機(jī)已實(shí)現(xiàn)在線編程技術(shù)(In System Programming, ISP),即單片機(jī)焊接到印刷電路板之后,通過串口線,配合計(jì)算機(jī)中專用的燒寫軟件將程序燒寫到單片機(jī)的Flash中。但是,若要隨時(shí)對分布在各地的輪機(jī)模擬器I/O單元的程序進(jìn)行升級維護(hù),上述2種方式都無法實(shí)現(xiàn)。輪機(jī)模擬器I/O單元遠(yuǎn)程程序升級設(shè)計(jì)就是在該需求下提出的,通過在單片機(jī)的外圍電路中加入集成有硬件TCP/IP協(xié)議棧的網(wǎng)絡(luò)芯片W5100,使單片機(jī)與以太網(wǎng)建立連接;利用在應(yīng)用中編程(In-Application Programming, IAP)功能將從遠(yuǎn)程主機(jī)發(fā)送來的新程序數(shù)據(jù)燒寫到單片機(jī)的Flash中重新編程,即可實(shí)現(xiàn)單片機(jī)的遠(yuǎn)程升級操作。圖1為該設(shè)計(jì)的總體示意。

        圖1 輪機(jī)模擬器I/O單元遠(yuǎn)程程序升級設(shè)計(jì)總體示意

        1 硬件電路設(shè)計(jì)

        輪機(jī)模擬器I/O單元處理器采用的是Philips公司生產(chǎn)的一款80C51內(nèi)核微處理器P89V51RD2,包含64 KB的Flash、1 024字節(jié)的數(shù)據(jù)RAM及單獨(dú)的一塊8 KB的Flash,存儲(chǔ)有Philips公司在芯片出廠時(shí)燒寫的引導(dǎo)加載程序[1],用于實(shí)現(xiàn)IAP和ISP下載。

        W5100 是一款多功能單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有 10/100 Mbites/s的以太網(wǎng)控制器。使用 W5100 可實(shí)現(xiàn)沒有操作系統(tǒng)的 Internet 連接。W5100 內(nèi)部集成有全硬件的TCP/IP 協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY),其中全硬件TCP/IP協(xié)議棧支持 TCP,UDP,IPv4,ICMP,ARP和IGMP 等;此外還集成有 16 KB 存儲(chǔ)器,用于數(shù)據(jù)傳輸。使用W5100無需考慮以太網(wǎng)的控制,只需進(jìn)行簡單的端口編程即可實(shí)現(xiàn)與以太網(wǎng)的連接。[2]

        硬件電路設(shè)計(jì)包括P89V51RD2外圍電路設(shè)計(jì)和W5100外圍電路設(shè)計(jì)。P89V51RD2外圍電路主要執(zhí)行的是輪機(jī)模擬器I/O單元的相關(guān)任務(wù): 16通道數(shù)字量輸出、16通道數(shù)字量輸入、8通道模擬量輸出及對W5100進(jìn)行控制。其對W5100有直接地址總線、間接地址總線和SPI總線等3種訪問方式。雖然使用直接地址總線方式便于編程和提高通信效率,但鑒于P89V51RD2自帶SPI控制器接口,使用SPI總線方式不僅能節(jié)約單片機(jī)的I/O口資源,而且利于簡化印刷電路板布局,減小PCB板尺寸,因此在電路設(shè)計(jì)上P89V51RD2通過SPI總線訪問W5100。為保證通信及時(shí),W5100的中斷信號線連接到P89V51RD2的INT1上,網(wǎng)口使用自帶網(wǎng)絡(luò)變壓器的RJ-45。圖2為在Altium Designer環(huán)境中繪制的P89V51RD2及W5100外圍電路原理。

        a) P89V51RD2外圍電路原理

        b) W5100外圍電路原理

        2 程序設(shè)計(jì)

        程序設(shè)計(jì)包括模擬器相關(guān)任務(wù)、W5100網(wǎng)絡(luò)實(shí)現(xiàn)和程序升級任務(wù)。這里模擬器相關(guān)任務(wù)不作詳細(xì)介紹。

        2.1W5100網(wǎng)絡(luò)實(shí)現(xiàn)

        P89V51RD2通過SPI總線方式訪問W5100,其中:P89V51RD2工作于主機(jī)模式;W5100工作于從機(jī)模式;SPI總線工作于模式3。[3]對W5100的讀操作格式為:0X0F(操作符)+2字節(jié)地址+1字節(jié)數(shù)據(jù)。對W5100的寫操作格式為:0XF0(操作符)+2字節(jié)地址+1字節(jié)數(shù)據(jù)。

        通過設(shè)置相關(guān)的寄存器和存儲(chǔ)器進(jìn)行初始化,W5100即可與以太網(wǎng)連接。初始化完成后即可創(chuàng)建端口進(jìn)行數(shù)據(jù)通信。W5100支持TCP,UDP,IP_RAW和MAC_RAW模式通信,且可創(chuàng)建4個(gè)端口。為提高通信效率,該設(shè)計(jì)使用UDP模式。圖3為W5100 UDP方式的通信流程。

        2.2IAP功能實(shí)現(xiàn)

        IAP功能允許在應(yīng)用中自行對用戶程序代碼進(jìn)行部分或全部修改,為用戶提供一種可行的程序更新途徑。P89V51RD2的Flash存儲(chǔ)結(jié)構(gòu)見圖4,其中:64 KB的用戶Flash的地址范圍為0X0000~0XFFFF;8 KB的引導(dǎo)Flash的地址范圍為0X0000~0X1FFF。雖然二者的地址會(huì)有部分重疊,但正常運(yùn)行時(shí)引導(dǎo)Flash會(huì)被覆蓋掉,而激活引導(dǎo)Flash時(shí)用戶Flash的0X0000~0X1FFF部分會(huì)被覆蓋掉,因此二者不會(huì)產(chǎn)生沖突。

        圖3 W5100UDP方式的通信流程

        圖4 P89V51RD2的Flash存儲(chǔ)結(jié)構(gòu)

        Philips公司在引導(dǎo)Flash中針對IAP功能提供有封裝好的子函數(shù),該設(shè)計(jì)使用的IAP子函數(shù)有用戶代碼燒錄和扇區(qū)擦除功能。由于引導(dǎo)Flash與用戶Flash的部分地址存在重疊,因此只有通過匯編語言才能正確調(diào)用,且調(diào)用點(diǎn)必須位于0X2000之后。但是,該設(shè)計(jì)的主函數(shù)采用的是C語言,因此需在C語言中調(diào)用匯編語言。[4]以下實(shí)例是在IAPSubFun.asm中編寫的調(diào)用IAP燒錄子函數(shù)的匯編實(shí)現(xiàn),在C語言環(huán)境中按相同函數(shù)名“P89V51RD2_Write_IAP”聲明之后即可調(diào)用。

        PUBLIC_P89V51RD2_Write_IAP

        ?PR?_P89V51RD2_Write_IAP?IAPSUBFUN SEGMENT CODE

        RSEG ?PR?_P89V51RD2_Write_IAP?IAPSUBFUN

        _P89V51RD2_Write_IAP:

        PUSH DPH

        PUSH DPL

        CLR EA; 關(guān)閉中斷

        MOV R1, 02H; 調(diào)用字節(jié)寫命令

        ANL 0B1H, 0FCH; 清零BSEL位

        MOV DPH,R6; 存儲(chǔ)器高字節(jié)地址

        MOV DPL,R7; 存儲(chǔ)器低字節(jié)地址

        MOV A,R5; 燒錄的數(shù)據(jù)

        LCALL 1FF0H; 進(jìn)入引導(dǎo)Flash

        MOV R7,A ; 由R7返回是否成功寫入的消息

        ORL 0B1H, #01H ; 返回用戶程序

        SETB EA; 開中斷

        POP DPL

        POP DPH

        RET

        為使上述函數(shù)的調(diào)用點(diǎn)在0X2000之后,在Keil工程“BL51 Misc”選項(xiàng)卡的“Code”中輸入“?PR?_P89V51RD2_Write_IAP?IAPSUBFUN(0XF800)”即可將上述燒錄函數(shù)的入口地址定位在用戶Flash空間的0XF800處。同理可實(shí)現(xiàn)扇區(qū)擦除函數(shù)。

        2.3升級程序設(shè)計(jì)

        由于P89V51RD2有64 KB的Flash,而一般的用戶程序代碼很少超過30 KB(設(shè)計(jì)中模擬器相關(guān)任務(wù)Code不超過1.5 KB,完整的網(wǎng)絡(luò)實(shí)現(xiàn)任務(wù)及IAP操作功能函數(shù)不超過2 KB),因此為簡化電路,避免添加存儲(chǔ)器件,可將剩余的部分空間利用起來當(dāng)作數(shù)據(jù)存儲(chǔ)器[5],作為新代碼的暫存區(qū),直到新程序代碼完全正確接收后再拷貝到主運(yùn)行空間,避免升級中斷導(dǎo)致原程序損壞而死機(jī)。圖4中將用戶Flash 分為主運(yùn)行空間30 KB(0X0000~0X77FF)、升級暫存空間30 KB(0X7800~0XEFFF)和IAP功能操作空間4 KB(0XF000~OXFFFF)等3部分。

        具體的設(shè)計(jì)為:正常運(yùn)行的程序代碼存在主運(yùn)行空間[6];與IAP功能相關(guān)的函數(shù)通過絕對地址定位存儲(chǔ)在IAP操作空間;升級時(shí),首先擦除升級暫存空間,將接收到的代碼的存儲(chǔ)地址偏移0X7800后存儲(chǔ)在暫存空間,代碼準(zhǔn)確接收完成后再將暫存空間的代碼拷貝到主運(yùn)行空間,完成升級操作。若代碼的地址在IAP操作空間,則程序就將忽略該條代碼,防止IAP操作空間被修改。

        單片機(jī)工程通過Keil編譯后即可獲得Intel HEX格式的可執(zhí)行文件,該文件內(nèi)的每一行記錄為一條十六進(jìn)制代碼,具體形式為

        :NNAAAARRDD…DDCC

        (1)

        式(1)中:“:”為記錄的起始標(biāo)志;“NN”為有效數(shù)據(jù)DD的長度,最大為16個(gè),即0X10;“AAAA”為裝入地址;“RR”為數(shù)據(jù)類型,00表示數(shù)據(jù)記錄,01表示結(jié)束;“DD”為將要燒寫的數(shù)據(jù);“CC”為校驗(yàn)和,一條記錄中除“:”外的所有數(shù)據(jù)相加的和應(yīng)為0,否則出錯(cuò)。

        在遠(yuǎn)程主機(jī)上按上述格式將HEX記錄逐條發(fā)送給現(xiàn)場的單片機(jī),單片機(jī)接收到數(shù)據(jù)后解析出燒寫地址和有效數(shù)據(jù)并校驗(yàn),HEX記錄校驗(yàn)通過才可寫入到對應(yīng)的升級暫存空間中。圖5為單片機(jī)端收到新數(shù)據(jù)升級操作流程。

        平時(shí)單片機(jī)執(zhí)行模擬器相關(guān)任務(wù),遠(yuǎn)程主機(jī)發(fā)來升級指令后,單片機(jī)首先擦除暫存空間,然后回復(fù)遠(yuǎn)程主機(jī)準(zhǔn)備完畢代號;遠(yuǎn)程主機(jī)收到代號后再發(fā)送新的代碼數(shù)據(jù)。為保證代碼數(shù)據(jù)的準(zhǔn)確性,每接收一條記錄,待校驗(yàn)通過并燒寫后,單片機(jī)再讀取剛燒寫的數(shù)據(jù)并回復(fù),遠(yuǎn)程主機(jī)確認(rèn)無誤后再發(fā)送下一條記錄,如此往復(fù),直到發(fā)送完畢。若校驗(yàn)不通過或出現(xiàn)其他錯(cuò)誤,則中斷此次升級操作,并返回相應(yīng)的錯(cuò)誤代號。單片機(jī)收到結(jié)束指令時(shí),程序跳轉(zhuǎn)到代碼拷貝函數(shù):擦除主運(yùn)行空間、將暫存空間的代碼拷貝到主運(yùn)行空間中??截愅瓿珊?,啟動(dòng)看門狗定時(shí)器復(fù)位,單片機(jī)即進(jìn)入到新程序中運(yùn)行,并回復(fù)升級完成代號給遠(yuǎn)程主機(jī)。

        圖5 單片機(jī)端收到新數(shù)據(jù)升級操作流程

        3 遠(yuǎn)程主機(jī)升級界面設(shè)計(jì)

        MATLAB GUI是MATLAB中的交互式圖形用戶界面開發(fā)工具,用戶可在MATLAB環(huán)境的支持下開發(fā)需要的應(yīng)用程序,兼顧MATLAB強(qiáng)大的數(shù)據(jù)處理能力和用戶界面良好的交互特性。遠(yuǎn)程主機(jī)升級界面的主要功能為:讀取HEX文件、創(chuàng)建UDP端口及將HEX記錄按UDP協(xié)議發(fā)送到指定的終端并監(jiān)控過程狀態(tài)。圖6為該遠(yuǎn)程主機(jī)升級界面流程。

        圖6 遠(yuǎn)程主機(jī)升級界面流程

        圖7為遠(yuǎn)程主機(jī)升級界面的初始化界面,其中:文本框用來輸入指定終端單片機(jī)的IP地址、網(wǎng)絡(luò)端口及本地的網(wǎng)絡(luò)端口;“選擇文件”按鈕用來選擇HEX文件;“升級申請”按鈕用來發(fā)送升級指令,開始升級操作。

        4 調(diào)試

        將包含有模擬器相關(guān)任務(wù)、W5100網(wǎng)絡(luò)實(shí)現(xiàn)和程序升級任務(wù)等相關(guān)任務(wù)對應(yīng)函數(shù)的Keil工程編譯好,獲得HEX可執(zhí)行文件;該文件通過ISP下載方式下載到P89V51RD2之后,單片機(jī)即可通過以太網(wǎng)與遠(yuǎn)程主機(jī)聯(lián)系,并具有遠(yuǎn)程程序升級功能。打開MATLAB中的遠(yuǎn)程主機(jī)升級界面,輸入待升級板卡的IP地址、網(wǎng)絡(luò)端口及本地計(jì)算機(jī)的網(wǎng)絡(luò)端口,添加更新后的模擬器功能任務(wù)的HEX可執(zhí)行文件,點(diǎn)擊“升級申請”按鈕;遠(yuǎn)程單片機(jī)收到升級指令之后,會(huì)在清除暫存區(qū)后返回準(zhǔn)備完畢代號,此時(shí)遠(yuǎn)程主機(jī)升級界面上隱藏的“發(fā)送”按鈕會(huì)顯示出來,表明可開始發(fā)送;點(diǎn)擊“發(fā)送”按鈕,開始發(fā)送HEX記錄,直到發(fā)送完成。單片機(jī)將升級暫存空間的數(shù)據(jù)對應(yīng)拷貝到主運(yùn)行空間之后,看門狗定時(shí)器復(fù)位,程序跳轉(zhuǎn)到0X0000處開始執(zhí)行新的程序并回復(fù)升級完成代號。完成后的遠(yuǎn)程主機(jī)升級界面見圖8。

        圖7 遠(yuǎn)程主機(jī)升級界面初始化界面

        圖8 完成后的遠(yuǎn)程主機(jī)升級界面

        5 結(jié)束語

        針對輪機(jī)模擬器I/O單元遠(yuǎn)程程序升級設(shè)計(jì),通過以太網(wǎng),以較低的硬件成本和簡單的操作即可實(shí)現(xiàn)對輪機(jī)模擬器I/O單元程序的遠(yuǎn)程升級維護(hù),無需定制引導(dǎo)加載程序,可隨時(shí)對程序進(jìn)行升級或漏洞修復(fù),避免派專業(yè)人員攜帶編程設(shè)備到現(xiàn)場處理,可大大提高工作效率和模擬器的智能化水平。

        [1] 汪萍,李隊(duì)員. 基于P89V51RD2的IAP設(shè)計(jì)[J]. 工業(yè)控制計(jì)算機(jī),2008,21(11): 96-97.

        [2] 王計(jì)元. 單片網(wǎng)絡(luò)接口芯片W5100的原理與應(yīng)用[J]. 上海電力學(xué)院學(xué)報(bào),2011,21(2): 153-159.

        [3] 蔣偉,文昱. SPI總線及其在單片機(jī)系統(tǒng)中的應(yīng)用[J]. 科技廣場,2008(10): 201-202.

        [4] 楊加國. 單片機(jī)C語言與匯編語言混合編程[J]. 成都大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(3): 208-211.

        [5] 綦聲波,褚東升,劉濱,等. 基于P89C51RD2 IAP功能的數(shù)據(jù)存取與軟件升級[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(11): 46-48.

        [6] ZHANG Xufei, WANG Jian. Realization of Remote Online Upgrading Technology Based on RealView MDK and IAP Function[C]. Mechanic Automation and Control Engineering (MACE), 2010: 6266-6269.

        RemoteUpdateofI/OUnitsofMarineEngineRoomSimulator

        WANGDelong,WANGDongjie,JIANGRuizheng

        (Marine Engineering College, Dalian Maritime University, Dalian 116026, China)

        U665.261

        A

        2016-05-19

        王德龍(1989—),男,河南信陽人,碩士,主要研究方向?yàn)檩啓C(jī)自動(dòng)化與智能化。E-mail: wdldmu2009@163.com

        1000-4653(2016)03-0016-04

        猜你喜歡
        單片機(jī)界面程序
        國企黨委前置研究的“四個(gè)界面”
        基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機(jī)的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機(jī)的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        試論我國未決羈押程序的立法完善
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        “程序猿”的生活什么樣
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        人機(jī)交互界面發(fā)展趨勢研究
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        新视觉亚洲三区二区一区理伦| 99热视热频这里只有精品| 欧洲亚洲色一区二区色99| 中文字幕人妻av一区二区| 妺妺窝人体色www婷婷| 欧美gv在线观看| 日韩欧美在线观看成人| 亚洲天堂av在线免费播放| av无码精品一区二区三区| 三上悠亚亚洲精品一区| 国产日韩精品欧美一区喷水| 日产无人区一线二线三线新版| 污污污国产免费网站| 亚洲国产精品激情综合色婷婷| 免费欧洲毛片a级视频老妇女 | 在线精品首页中文字幕亚洲| 少妇无码太爽了在线播放| 日韩高清在线观看永久| 少妇高潮喷水久久久影院| 日本精品一区二区在线看| 青青草激情视频在线播放| 妺妺窝人体色www看美女| 福利一区在线观看| 亚洲一区极品美女写真在线看| 白白色视频这里只有精品| 欲香欲色天天综合和网| 乌克兰少妇xxxx做受野外| 国产系列丝袜熟女精品视频| 国产精品国产三级农村妇女| 国产成人午夜高潮毛片| 亚洲国产综合精品 在线 一区| 成人综合久久精品色婷婷| 亚洲av成人一区二区| 亚洲av永久无码精品网址| 免费毛片视频网站| 久久精品国产亚洲av沈先生 | 五月天婷婷综合网| 亚洲成a人片77777kkkkk| 中国男男女在线免费av| 亚洲色国产欧美日韩| 久久精品一品道久久精品9 |