《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于串口的通用的單片機在系統編程設計及實現
基于串口的通用的單片機在系統編程設計及實現
摘要: 針對使用不具備ISP功能的MCU系統,只要滿足以下四個條件,就可以按照本文的方法進行ISP設計。考慮自編程過程中文件出錯、斷電等特殊情況,此方案可實現故障保護。
Abstract:
Key words :

  0 引 言

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

  1 通用的在系統編程方法

  隨著嵌入式系統技術的發展,電可擦除的FLASH芯片以容量大,價格低,編程方便等優勢得到了廣泛的應用。用一片FLASH作為程序存儲器的系統無法直接實現在系統編程(ISP),為了方便現場調試和程序升級,可以采用集成ISP功能的MCU(如AVR、部分ARM芯片等),或者采用雙FLASH設計等方法實現ISP功能。但有不少系統仍然使用不具備直接ISP功能的MCU(如M68K、N80C196等),同時因印制版面積、成本等原因的考慮也沒有采用雙FLASH芯片,此類系統在程序升級時通常需要編程器、仿真器等特定工具,在現場調試時很不方便。

  針對使用不具備ISP功能的MCU系統,只要滿足以下四個條件,就可以按照本文的方法進行ISP設計。考慮自編程過程中文件出錯、斷電等特殊情況,此方案可實現故障保護。

  (1)程序空間和數據空間統一編址,程序可以在RAM中運行;

  (2)FLASH芯片正確連接了寫信號;

  (3)擁有能放下Update程序并讓其正常工作的額外程序/數據空間;

  (4)具備某種通信能力(例如以太網、串口、CAN、MODEM等)。

  程序分布如圖1所示。這種情況下需要把整個工作分為三部分完成。第一是引導程序(稱為Boot程序);第二是升級程序(Update程序);第三是正常程序(Normal程序)。Boot程序負責控制程序的運行模式:升級模式、正常模式。如果進入升級模式,Boot程序需要將Update程序復制到指定的運行空間,并轉入執行Update程序;如果進入正常模式,Boot需要做的工作就十分簡單,可以直接把控制權交給正常程序。要注意Update在自編程時不能破壞Boot程序。此時Normal程序不再負有復制Update程序到指定運行空間的任務,完全按照正常的模式運行。

程序分布

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

  2 80C196KC ISP的通信模塊設計

  實現80C196KC ISP的核心思想即用AT29C256代替常用的M27C256做程序存儲器與80C196KC相接,區別在于前者1引腳接/WR,后者1腳懸空;再用一片DS1230Y(NV SRAM)做中轉。AT29C256分三個空間存放引導程序、更新程序和正常控制程序;其中引導程序用于80C196KC和上位機進行串口通信,接收上位機編譯好的更新程序(.Hex文件),并把它放到DS1230Y中,在下載完成后把其中接收的程序代碼發回上位機進行校驗,校驗無誤后跳轉去運行更新程序;更新程序用于將DS1230Y中校驗無誤的新程序復制到AT29C256的正常控制程序空間;正常控制程序即待更新或已經更新的系統程序。每次系統上電后由鍵盤判斷是否需要在系統編程,如果需要,則經過引導程序和更新程序執行后,跳轉到正常控制程序空間運行更新了的程序。如果不需要,則直接跳轉到正常控制程序空間運行。在從AT29C256取指令時,注意WE腳保持高電平。

  2.1 通信協議

  目前微機的串行通信口都是基于RS 232協議的,但因其傳送速率較低、抗干擾能力較差、傳送距離太近等缺點,該系統采用RS 422通信方式。RS 422每個通道通過二條信號線進行傳輸,采用平衡驅動、差分接收形式,對在接收器輸入端出現的共模噪聲起到了抑制作用,可以允許較大的信號衰減。另外由于兩者之間不共地,不存在回路之間的電位差,徹底消除了遠距離信號傳輸中因地電位不等造成的影響,從而有很強的抗干擾能力,并且可獲得較長的傳輸距離。

 

  2.2 通信接口電路

  鑒于篇幅,這里只給出串口通信中PC端硬件接口部分。

  首先由一塊MAX232芯片把PC機串行口的RS 232電平轉換為TTL電平,然后通過6N137的光電隔離模塊進行隔離,再通過MAX 487芯片完成RS 232協議到RS 422協議的轉換。其實也就是一個電平被轉換為兩個壓差電平的過程,如圖2所示。

通信接口電路

  2.3 通信軟件設計

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

程序

  固化中斷服務程序,并通過在PL/M語句中嵌入匯編語句完成程序的跳轉。下載完成后,將程序復制到AT29C256后運行新程序,DS1230Y仍用作數據存儲器。

  PC(上位機)操作界面應用Delphi 6.0開發。在Delphi 6.0開發環境下實現串行通信有多種方法,如:調用MSCOMM.OCX控件、在Windows下使用Win-dows API、應用嵌入式匯編語言、直接構造Delphi中的通信控件、利用動態鏈接庫(DLL)等。考慮到該系統的通信情況比較簡單,所以直接使用MSComm組件編寫串口通信軟件,主要包括三個方面的設計內容:

  (1)收發數據,指的是在PC機的串口與80C196KC的串口UART之間能收發字符串,二進制串(16進制顯示);

  (2)收發文件,指的是在PC機的串口與80C196KC的串口UART之間能收發字符型文件,16進制文件(.Hex文件)

  (3)差錯校驗及系統可靠性設計。通信的成功與否最后還要看校驗的結果,即接收端是否能正確無誤的接收到發送端發送的內容。差錯控制流程圖如圖3所示,核心代碼如下:

程序

差錯控制流程圖

  最終開發出的操作界面如圖4所示,包括下載進程顯示條,串口初始化設置框,收發數據文本框,選擇打開發送文件按鈕,發送文件大小顯示框,校驗按鈕,文本與16進制類型選擇框以及通信狀態顯示項。

開發出的操作界面

  3 結 語

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产精品成人va在线观看| 欧美一级片一区| 欧美午夜免费电影| 欧美gay视频| 久久资源av| 久久久久久综合| 欧美有码视频| 亚洲欧美精品中文字幕在线| 一本色道久久88综合亚洲精品ⅰ| 亚洲精品国产系列| 亚洲狠狠婷婷| 亚洲国产精品久久久久久女王| 欧美一区2区视频在线观看| 亚洲综合日本| 亚洲欧美日韩国产一区| 亚洲欧美成人网| 亚洲欧美日韩综合aⅴ视频| 亚洲永久精品大片| 一区二区三区成人精品| 亚洲午夜久久久| 亚洲男人的天堂在线aⅴ视频| 亚洲永久免费| 欧美一二三视频| 久久电影一区| 亚洲黄色在线视频| 亚洲人成在线播放网站岛国| 亚洲免费观看高清在线观看| 夜夜夜久久久| 亚洲愉拍自拍另类高清精品| 在线视频精品| 亚洲欧美中文日韩在线| 欧美综合国产精品久久丁香| 欧美综合国产精品久久丁香| 久久久97精品| 欧美aa在线视频| 欧美日韩精品久久| 国产精品久久久久高潮| 国产午夜亚洲精品羞羞网站| 精品成人国产在线观看男人呻吟| 亚洲电影下载| 亚洲免费激情| 亚洲欧美综合国产精品一区| 久久精品日产第一区二区三区| 亚洲激情网站| 一区二区三区不卡视频在线观看| 亚洲一区二区三区精品在线观看| 欧美影院精品一区| 美日韩精品免费观看视频| 欧美日韩福利| 国产午夜久久久久| 亚洲黄色大片| 亚洲一区3d动漫同人无遮挡| 久久超碰97人人做人人爱| 亚洲青涩在线| 亚洲伊人色欲综合网| 欧美一级午夜免费电影| 美日韩免费视频| 国产精品成人免费| 国产在线播放一区二区三区| 亚洲国产日韩在线| 亚洲一区二区精品在线观看| 久久精品一区蜜桃臀影院 | 中文av一区二区| 91久久久久久| 亚洲影院免费观看| 亚洲国产精品嫩草影院| 一区二区三区高清在线观看| 久久精品视频在线免费观看| 欧美日韩国产成人精品| 国产日韩精品一区二区三区| 91久久精品日日躁夜夜躁国产| 亚洲一区日本| 亚洲免费观看| 久久久水蜜桃av免费网站| 欧美三级韩国三级日本三斤| 精品69视频一区二区三区| 亚洲丝袜av一区| 亚洲精品国产精品国自产观看| 欧美伊久线香蕉线新在线| 欧美久久综合| 国产一区二区三区的电影| 99re6热在线精品视频播放速度| 亚洲大片免费看| 亚洲女女女同性video| 欧美激情视频在线播放| 国产日韩精品电影| 中日韩午夜理伦电影免费| 亚洲免费激情| 猛干欧美女孩| 国产一区二区三区在线免费观看| 99在线热播精品免费| 亚洲欧洲精品一区二区三区| 久久国产精品久久久久久| 国产精品s色| 亚洲日本中文字幕区| 亚洲第一区色| 久久国产日韩| 国产精品日韩一区| 亚洲精品专区| 亚洲欧洲精品天堂一级| 久久美女艺术照精彩视频福利播放| 国产精品午夜电影| 亚洲视频免费看| 一级成人国产| 欧美精品三级| 亚洲国产一区在线观看| 亚洲国产精品精华液2区45| 久久久久在线| 国产日韩欧美| 亚洲欧美国产日韩中文字幕| 亚洲免费一级电影| 欧美特黄一级大片| 99热这里只有精品8| 日韩一区二区久久| 欧美aaa级| 亚洲国产精品第一区二区| 亚洲欧洲精品成人久久奇米网| 麻豆av一区二区三区| 国语对白精品一区二区| 欧美中文在线视频| 久久久久久日产精品| 国产午夜精品美女毛片视频| 亚洲欧洲av一区二区三区久久| 性欧美激情精品| 国产日韩在线视频| 欧美一区二区三区四区视频| 久久成人免费网| 国产一区二区欧美日韩| 欧美一区二区三区四区在线| 久久精品一区二区三区四区| 国产亚洲一区二区三区在线观看 | 一本大道av伊人久久综合| 欧美精品国产一区| 亚洲欧洲一区二区天堂久久| 99视频一区| 国产精品电影在线观看| 亚洲一区二区精品在线| 欧美与黑人午夜性猛交久久久| 国产一二三精品| 亚洲国内自拍| 欧美精品日韩一本| 夜夜精品视频一区二区| 午夜精品久久久久久久99樱桃 | 国产精品羞羞答答| 欧美一区二区三区久久精品茉莉花| 久久成人亚洲| 在线播放不卡| 亚洲最新视频在线播放| 国产精品成人免费精品自在线观看| 亚洲一区在线观看视频 | 久久国产一区二区三区| 国产有码在线一区二区视频| 亚洲欧洲日本在线| 欧美日韩一区二区精品| 亚洲欧美日本国产有色| 久久夜色精品国产噜噜av| 亚洲国产欧美日韩精品| 亚洲无线一线二线三线区别av| 国产精品视频精品视频| 亚洲第一福利视频| 欧美另类在线观看| 亚洲欧美国产制服动漫| 美女精品在线| 中文国产成人精品久久一| 久久久久久久综合日本| 91久久一区二区| 午夜精品视频网站| 伊人精品视频| 亚洲一区二区成人| 国产午夜精品理论片a级探花| 亚洲精品欧美| 国产精品嫩草久久久久| 亚洲国产成人在线| 欧美午夜不卡在线观看免费| 欧美在线观看视频一区二区| 欧美日韩dvd在线观看| 午夜精品久久久久久久久| 欧美成人午夜免费视在线看片| 正在播放欧美视频| 久久综合色婷婷| 亚洲婷婷国产精品电影人久久| 老司机一区二区| 中文在线一区| 欧美v国产在线一区二区三区| 一本一本久久| 欧美aⅴ一区二区三区视频| 亚洲综合好骚| 欧美精品在线免费观看| 欧美在线一二三四区| 国产精品高潮呻吟| 亚洲日本aⅴ片在线观看香蕉| 国产免费成人| 一区二区三区精品| 狠狠色丁香久久婷婷综合丁香| 亚洲永久在线| 亚洲精品一区二区三区樱花| 久久亚洲国产成人| 亚洲综合清纯丝袜自拍| 欧美日韩aaaaa| 亚洲人成亚洲人成在线观看图片|