999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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ū)動網(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ī)自動化實(shí)驗(yàn)室開發(fā)的全任務(wù)輪機(jī)模擬器逐漸在各個實(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中。但是,若要隨時對分布在各地的輪機(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,存儲有Philips公司在芯片出廠時燒寫的引導(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 存儲器,用于數(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。為保證通信及時,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)的寄存器和存儲器進(jìn)行初始化,W5100即可與以太網(wǎng)連接。初始化完成后即可創(chuàng)建端口進(jìn)行數(shù)據(jù)通信。W5100支持TCP,UDP,IP_RAW和MAC_RAW模式通信,且可創(chuàng)建4個端口。為提高通信效率,該設(shè)計(jì)使用UDP模式。圖3為W5100 UDP方式的通信流程。

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

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

圖3 W5100UDP方式的通信流程

圖4 P89V51RD2的Flash存儲結(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; 存儲器高字節(jié)地址

MOV DPL,R7; 存儲器低字節(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),因此為簡化電路,避免添加存儲器件,可將剩余的部分空間利用起來當(dāng)作數(shù)據(jù)存儲器[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ù)通過絕對地址定位存儲在IAP操作空間;升級時,首先擦除升級暫存空間,將接收到的代碼的存儲地址偏移0X7800后存儲在暫存空間,代碼準(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個,即0X10;“AAAA”為裝入地址;“RR”為數(shù)據(jù)類型,00表示數(shù)據(jù)記錄,01表示結(jié)束;“DD”為將要燒寫的數(shù)據(jù);“CC”為校驗(yàn)和,一條記錄中除“:”外的所有數(shù)據(jù)相加的和應(yīng)為0,否則出錯。

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

平時單片機(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)其他錯誤,則中斷此次升級操作,并返回相應(yīng)的錯誤代號。單片機(jī)收到結(jié)束指令時,程序跳轉(zhuǎn)到代碼拷貝函數(shù):擦除主運(yùn)行空間、將暫存空間的代碼拷貝到主運(yùn)行空間中。拷貝完成后,啟動看門狗定時器復(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ī)收到升級指令之后,會在清除暫存區(qū)后返回準(zhǔn)備完畢代號,此時遠(yuǎn)程主機(jī)升級界面上隱藏的“發(fā)送”按鈕會顯示出來,表明可開始發(fā)送;點(diǎn)擊“發(fā)送”按鈕,開始發(fā)送HEX記錄,直到發(fā)送完成。單片機(jī)將升級暫存空間的數(shù)據(jù)對應(yīng)拷貝到主運(yùn)行空間之后,看門狗定時器復(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)加載程序,可隨時對程序進(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ī)自動化與智能化。E-mail: wdldmu2009@163.com

1000-4653(2016)03-0016-04

猜你喜歡
單片機(jī)界面程序
國企黨委前置研究的“四個界面”
基于單片機(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ā)方法研究
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
人機(jī)交互界面發(fā)展趨勢研究
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: AV在线麻免费观看网站| 久久国产精品嫖妓| 波多野结衣无码中文字幕在线观看一区二区| 免费jizz在线播放| 在线亚洲天堂| 国产在线精彩视频二区| 国产交换配偶在线视频| 亚洲嫩模喷白浆| 2021精品国产自在现线看| 在线免费亚洲无码视频| 精品国产成人国产在线| 中文一区二区视频| 欧美日韩成人在线观看| 久久精品视频一| 国产无码性爱一区二区三区| 欧美国产日产一区二区| 国产黄色片在线看| 99久久精品免费看国产免费软件| 亚洲综合色婷婷| 在线观看视频99| 成人福利在线视频| 欧美一级黄片一区2区| 韩国福利一区| 一级毛片免费的| 亚洲激情99| 在线国产三级| 狠狠色综合网| 红杏AV在线无码| AV色爱天堂网| 久久无码av三级| 国产一二视频| 99精品在线视频观看| 国产免费好大好硬视频| 欧美午夜在线播放| 丝袜美女被出水视频一区| 美女视频黄频a免费高清不卡| 国内丰满少妇猛烈精品播 | 日韩欧美网址| 亚洲无码日韩一区| 九色在线观看视频| 日韩成人高清无码| 国产欧美精品一区二区| 无码中文字幕乱码免费2| 91久久大香线蕉| 直接黄91麻豆网站| 精品国产毛片| 亚洲码一区二区三区| 亚洲中文字幕国产av| 久久精品人人做人人爽电影蜜月| 喷潮白浆直流在线播放| 丝袜久久剧情精品国产| 日韩午夜伦| 特级毛片8级毛片免费观看| 97久久精品人人| 麻豆精品视频在线原创| 国产精品一线天| 久久综合成人| 欧美亚洲日韩中文| 人妻精品全国免费视频| 亚洲成a人片77777在线播放| 色妞www精品视频一级下载| 亚洲黄色成人| 亚洲系列中文字幕一区二区| 国产原创演绎剧情有字幕的| 99国产精品国产| 国产精品三级专区| 少妇人妻无码首页| 五月婷婷伊人网| 国产免费一级精品视频 | 91在线精品麻豆欧美在线| 18禁影院亚洲专区| 免费大黄网站在线观看| 亚洲乱码精品久久久久..| 91亚洲视频下载| 一级不卡毛片| 亚洲黄色视频在线观看一区| 国产女人爽到高潮的免费视频 | 亚洲中文字幕在线观看| 青草视频久久| 天天爽免费视频| 青青青草国产| 国产真实乱子伦精品视手机观看|