當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]針對(duì)沒有集成在系統(tǒng)編程(ISP)功能的單片機(jī),提出一種基于串口RS 485協(xié)議通信的通用ISP方案。避免了此類單片機(jī)系統(tǒng)在程序升級(jí)時(shí)對(duì)編程器、仿真器等特定工具的依賴。以80C196KC單片機(jī)為例,通過FLASH、RAM、單片機(jī)的UART口、PC機(jī)及相關(guān)軟件模塊的設(shè)計(jì)實(shí)現(xiàn)了程序的在線升級(jí)。與其他方案比較,此方案具有代價(jià)低,設(shè)計(jì)簡單,可靠性高等諸多特點(diǎn)。

0 引 言
   
一般來說,在系統(tǒng)編程(ISP)是指依靠某種外部工具(除了常規(guī)的并行編程器以外)直接給處理器內(nèi)部集成的程序存儲(chǔ)器編程。這里所指的外部工具常見的有很多種,不同的處理器供應(yīng)廠商可能提供不同的方案。例如,根據(jù)編程接口的不同,就有JTAG、單線、串口、SPI口等多種方式。盡管編程方式有所不同,但其原理都是類似的,就是依靠外部條件觸發(fā)處理器,令其脫離正常執(zhí)行的內(nèi)部常規(guī)用戶應(yīng)用程序代碼的進(jìn)程,轉(zhuǎn)而執(zhí)行保存在其程序存儲(chǔ)空間內(nèi)某個(gè)固定位置處的控制擦除程序存儲(chǔ)器及給程序存儲(chǔ)器編程的代碼(或是處理器外部提供的執(zhí)行代碼),然后通過某種與PC計(jì)算機(jī)的通信方式,將用戶指定的某個(gè)在PC上編譯完成的嵌入式處理器可運(yùn)行的二進(jìn)制代碼文件編程人嵌入式處理器內(nèi)的程序存儲(chǔ)器。這種編程方式只需要常規(guī)的硬件配置(某些處理器可能需要某些叫作下載線的簡單硬件電路)支持,而不需要特別的編程器(指并行編程器)支持,所以即使處理器芯片已經(jīng)焊接到了電路板上也可以實(shí)現(xiàn)編程,這也就是ISP的真實(shí)含義。

1 通用的在系統(tǒng)編程方法
   
隨著嵌入式系統(tǒng)技術(shù)的發(fā)展,電可擦除的FLASH芯片以容量大,價(jià)格低,編程方便等優(yōu)勢(shì)得到了廣泛的應(yīng)用。用一片F(xiàn)LASH作為程序存儲(chǔ)器的系統(tǒng)無法直接實(shí)現(xiàn)在系統(tǒng)編程(ISP),為了方便現(xiàn)場(chǎng)調(diào)試和程序升級(jí),可以采用集成ISP功能的MCU(如AVR、部分ARM芯片等),或者采用雙FLASH設(shè)計(jì)等方法實(shí)現(xiàn)ISP功能。但有不少系統(tǒng)仍然使用不具備直接ISP功能的MCU(如M68K、N80C196等),同時(shí)因印制版面積、成本等原因的考慮也沒有采用雙FLASH芯片,此類系統(tǒng)在程序升級(jí)時(shí)通常需要編程器、仿真器等特定工具,在現(xiàn)場(chǎng)調(diào)試時(shí)很不方便。
    針對(duì)使用不具備ISP功能的MCU系統(tǒng),只要滿足以下四個(gè)條件,就可以按照本文的方法進(jìn)行ISP設(shè)計(jì)??紤]自編程過程中文件出錯(cuò)、斷電等特殊情況,此方案可實(shí)現(xiàn)故障保護(hù)。
    (1)程序空間和數(shù)據(jù)空間統(tǒng)一編址,程序可以在RAM中運(yùn)行;
    (2)FLASH芯片正確連接了寫信號(hào);
    (3)擁有能放下Update程序并讓其正常工作的額外程序/數(shù)據(jù)空間;
    (4)具備某種通信能力(例如以太網(wǎng)、串口、CAN、MODEM等)。
    程序分布如圖1所示。這種情況下需要把整個(gè)工作分為三部分完成。第一是引導(dǎo)程序(稱為Boot程序);第二是升級(jí)程序(Update程序);第三是正常程序(Normal程序)。Boot程序負(fù)責(zé)控制程序的運(yùn)行模式:升級(jí)模式、正常模式。如果進(jìn)入升級(jí)模式,Boot程序需要將Update程序復(fù)制到指定的運(yùn)行空間,并轉(zhuǎn)入執(zhí)行Update程序;如果進(jìn)入正常模式,Boot需要做的工作就十分簡單,可以直接把控制權(quán)交給正常程序。要注意Update在自編程時(shí)不能破壞Boot程序。此時(shí)Normal程序不再負(fù)有復(fù)制Update程序到指定運(yùn)行空間的任務(wù),完全按照正常的模式運(yùn)行。

    按照這種方案,Boot程序和Update程序是自編程設(shè)計(jì)的核心內(nèi)容,只要保證這部分程序代碼的完整性,就能擁有在線編程的能力。要對(duì)這部分程序代碼區(qū)進(jìn)行保護(hù),保證在第一次寫入程序存儲(chǔ)器后就不會(huì)再被擦除。這樣即使在自編程時(shí)發(fā)生災(zāi)難性故障,Boot程序和Update程序是不會(huì)被破壞的,仍然可以繼續(xù)運(yùn)行,保證下次仍然可以進(jìn)行自編程。程序完成后必須分別固化到程序存儲(chǔ)器的指定空間,以保證程序的正常運(yùn)行。

2 80C196KC ISP的通信模塊設(shè)計(jì)
    實(shí)現(xiàn)80C196KC ISP的核心思想即用AT29C256代替常用的M27C256做程序存儲(chǔ)器與80C196KC相接,區(qū)別在于前者1引腳接/WR,后者1腳懸空;再用一片DS1230Y(NV SRAM)做中轉(zhuǎn)。AT29C256分三個(gè)空間存放引導(dǎo)程序、更新程序和正??刂瞥绦颍黄渲幸龑?dǎo)程序用于80C196KC和上位機(jī)進(jìn)行串口通信,接收上位機(jī)編譯好的更新程序(.Hex文件),并把它放到DS1230Y中,在下載完成后把其中接收的程序代碼發(fā)回上位機(jī)進(jìn)行校驗(yàn),校驗(yàn)無誤后跳轉(zhuǎn)去運(yùn)行更新程序;更新程序用于將DS1230Y中校驗(yàn)無誤的新程序復(fù)制到AT29C256的正??刂瞥绦蚩臻g;正??刂瞥绦蚣创禄蛞呀?jīng)更新的系統(tǒng)程序。每次系統(tǒng)上電后由鍵盤判斷是否需要在系統(tǒng)編程,如果需要,則經(jīng)過引導(dǎo)程序和更新程序執(zhí)行后,跳轉(zhuǎn)到正??刂瞥绦蚩臻g運(yùn)行更新了的程序。如果不需要,則直接跳轉(zhuǎn)到正??刂瞥绦蚩臻g運(yùn)行。在從AT29C256取指令時(shí),注意WE腳保持高電平。
2.1 通信協(xié)議
    目前微機(jī)的串行通信口都是基于RS 232協(xié)議的,但因其傳送速率較低、抗干擾能力較差、傳送距離太近等缺點(diǎn),該系統(tǒng)采用RS 422通信方式。RS 422每個(gè)通道通過二條信號(hào)線進(jìn)行傳輸,采用平衡驅(qū)動(dòng)、差分接收形式,對(duì)在接收器輸入端出現(xiàn)的共模噪聲起到了抑制作用,可以允許較大的信號(hào)衰減。另外由于兩者之間不共地,不存在回路之間的電位差,徹底消除了遠(yuǎn)距離信號(hào)傳輸中因地電位不等造成的影響,從而有很強(qiáng)的抗干擾能力,并且可獲得較長的傳輸距離。
2.2 通信接口電路
    鑒于篇幅,這里只給出串口通信中PC端硬件接口部分。
    首先由一塊MAX232芯片把PC機(jī)串行口的RS 232電平轉(zhuǎn)換為TTL電平,然后通過6N137的光電隔離模塊進(jìn)行隔離,再通過MAX 487芯片完成RS 232協(xié)議到RS 422協(xié)議的轉(zhuǎn)換。其實(shí)也就是一個(gè)電平被轉(zhuǎn)換為兩個(gè)壓差電平的過程,如圖2所示。

2.3 通信軟件設(shè)計(jì)
   
單片機(jī)(下位機(jī))軟件開發(fā)采用PL/M語言。主要由更新程序和通信程序組成,通信程序又包括通信主程序、接收、發(fā)送和定時(shí)中斷程序等。其中通信主程序是不斷循環(huán)執(zhí)行的,如果上位機(jī)發(fā)送了數(shù)據(jù)則進(jìn)入接收中斷處理程序,并同時(shí)在定時(shí)中斷中設(shè)置一個(gè)在接收中斷中被清零的計(jì)數(shù)器,當(dāng)定時(shí)器溢出某個(gè)時(shí)間范圍時(shí),說明接收完畢。這時(shí)觸發(fā)發(fā)送中斷,上發(fā)接收到的整個(gè)文件內(nèi)容用于校驗(yàn)。這里僅給出部分更新程序代碼。


    固化中斷服務(wù)程序,并通過在PL/M語句中嵌入?yún)R編語句完成程序的跳轉(zhuǎn)。下載完成后,將程序復(fù)制到AT29C256后運(yùn)行新程序,DS1230Y仍用作數(shù)據(jù)存儲(chǔ)器。
    PC(上位機(jī))操作界面應(yīng)用Delphi 6.0開發(fā)。在Delphi 6.0開發(fā)環(huán)境下實(shí)現(xiàn)串行通信有多種方法,如:調(diào)用MSCOMM.OCX控件、在Windows下使用Win-dows API、應(yīng)用嵌入式匯編語言、直接構(gòu)造Delphi中的通信控件、利用動(dòng)態(tài)鏈接庫(DLL)等??紤]到該系統(tǒng)的通信情況比較簡單,所以直接使用MSComm組件編寫串口通信軟件,主要包括三個(gè)方面的設(shè)計(jì)內(nèi)容:
    (1)收發(fā)數(shù)據(jù),指的是在PC機(jī)的串口與80C196KC的串口UART之間能收發(fā)字符串,二進(jìn)制串(16進(jìn)制顯示);
    (2)收發(fā)文件,指的是在PC機(jī)的串口與80C196KC的串口UART之間能收發(fā)字符型文件,16進(jìn)制文件(.Hex文件)
    (3)差錯(cuò)校驗(yàn)及系統(tǒng)可靠性設(shè)計(jì)。通信的成功與否最后還要看校驗(yàn)的結(jié)果,即接收端是否能正確無誤的接收到發(fā)送端發(fā)送的內(nèi)容。差錯(cuò)控制流程圖如圖3所示,核心代碼如下:

    最終開發(fā)出的操作界面如圖4所示,包括下載進(jìn)程顯示條,串口初始化設(shè)置框,收發(fā)數(shù)據(jù)文本框,選擇打開發(fā)送文件按鈕,發(fā)送文件大小顯示框,校驗(yàn)按鈕,文本與16進(jìn)制類型選擇框以及通信狀態(tài)顯示項(xiàng)。

3 結(jié) 語
   
提出了基于串口通信的通用的單片機(jī)ISP方法并針對(duì)80C196KC實(shí)現(xiàn)了PC機(jī)上已編譯程序的在線下載。通過回聲法校驗(yàn),返回的接收文件與發(fā)送文件完全一致,系統(tǒng)可靠性高,設(shè)計(jì)簡單,實(shí)現(xiàn)容易,具有一定的理論研究意義和應(yīng)用前景。為“國家雜交水稻工程技術(shù)研究中心”人工氣候室智能控制系統(tǒng)的系統(tǒng)程序更新,升級(jí)和遠(yuǎn)程維護(hù)提供了方便。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉