《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 基于單片機(jī)的微控制器在系統(tǒng)編程

基于單片機(jī)的微控制器在系統(tǒng)編程

2012-02-07

       介紹

       Dallas Semiconductor基于8051的微控制器類產(chǎn)品中,許多型號(hào)都支持通過(guò)通用RS-232串口實(shí)現(xiàn)在系統(tǒng)編程。在系統(tǒng)編程意味著程序和/或數(shù)據(jù)存儲(chǔ)器能夠在不用拆解嵌入式系統(tǒng)來(lái)替換存儲(chǔ)器的情況下進(jìn)行修改。這種特性強(qiáng)調(diào)易使用性和多功能性,在所有嵌入式設(shè)計(jì)中增加了許多非常重要的特性: 允許硬件在工廠組裝和存放,而在出廠前才進(jìn)行軟件定制, 需要進(jìn)行軟件升級(jí)時(shí),消除了在現(xiàn)場(chǎng)拆解器件的高昂代價(jià), 允許對(duì)位置不可達(dá)的應(yīng)用進(jìn)行軟件升級(jí), 訪問(wèn)專用配置與狀態(tài)寄存器,以及 使用存儲(chǔ)器加密的方式把軟件加載到安全微控制器。

       具有這種特性的器件包括:

      
DS2250, DS2250T, DS2251T, DS2252T, DS5000, DS5000T 安全微控制器 DS5000FP, DS5001FP

 

, DS5002FP, DS5002FPM 安全微處理器 DS5240, DS5250 高速安全微處理器DS80C400 網(wǎng)絡(luò)微處理器DS89C420, DS89C430, DS89C440, DS89C450 超高速閃存微控制器

       通過(guò)將器件的一個(gè)或多個(gè)外部引腳設(shè)置為某特定狀態(tài)來(lái)激活引導(dǎo)加載程序。器件啟動(dòng)后,開(kāi)始執(zhí)行位于器件內(nèi)部專用ROM的加載程序。一旦收到一個(gè)回車符號(hào),串口就執(zhí)行自動(dòng)波特率功能并與主機(jī)的波特率同步。主機(jī)(通常為PC)和目標(biāo)板之間的通訊是通過(guò)大多數(shù)PC上常見(jiàn)的通用RS-232接口完成的,而不需要昂貴的專用硬件。引導(dǎo)加載程序使用的協(xié)議簡(jiǎn)單,由一個(gè)或多個(gè)帶有相關(guān)狀態(tài)消息和文件傳送程序的ASCII字符命令組成??梢允褂肈allas Semiconductor免費(fèi)提供的微控制器工具包通訊軟件或任何串口通訊工具軟件來(lái)完成通訊。

       大部分此類器件也支持在應(yīng)用編程,允許器件在應(yīng)用軟件的控制下修改程序存儲(chǔ)器。這種方式下,系統(tǒng)能夠在仍然履行其主要功能的情況下完成在線軟件升級(jí)。詳細(xì)情況在相關(guān)器件的數(shù)據(jù)手冊(cè)或用戶指南中給出。

       此文檔是對(duì)相關(guān)器件的數(shù)據(jù)手冊(cè)以及使用指南中所提供信息的補(bǔ)充。閱讀此應(yīng)用筆記時(shí),請(qǐng)根據(jù)需要參考這些文檔。

       物理連接

       引導(dǎo)加載程序是通過(guò)將器件的一個(gè)或多個(gè)外部引腳置為如表1所示的特定狀態(tài)來(lái)激活的。此時(shí)終止執(zhí)行應(yīng)用軟件,并且將程序控制權(quán)交給內(nèi)部引導(dǎo)ROM。一定要查閱正確的勘誤表,以確定是否有與激活引導(dǎo)加載程序相關(guān)的任何勘誤信息。

 

激活引導(dǎo)加載程序


       對(duì)不同的產(chǎn)品系列,調(diào)用引導(dǎo)加載程序的物理連接和方法略有不同,但是都包含相同的基本元件。如果連接到一臺(tái)PC上,需要一個(gè)如圖所示的RS-232到CMOS電平轉(zhuǎn)換器,來(lái)連接主機(jī)和目標(biāo)微控制器間的通訊和控制信號(hào)。圖中所示的器件可以替換為任何兼容的RS-232轉(zhuǎn)換器。下列圖中使用微控制器的DTR信號(hào)作為加載/運(yùn)行模式選擇信號(hào)。

       一些設(shè)計(jì)使用了具有三態(tài)輸出的總線緩沖器。當(dāng)DTR有效時(shí)(低電平),它使能打開(kāi)緩沖器,并驅(qū)動(dòng)用來(lái)激活引導(dǎo)加載程序的多個(gè)信號(hào)。這個(gè)總線緩沖器在原理圖中一般標(biāo)成"HC/AC125",這是因?yàn)榭梢允褂萌魏芜壿嬒盗械南嗨破骷?,?4HC125, 54HC125, 74AC125, 74LS125等。這些器件很常見(jiàn),應(yīng)該能夠從任何一家通用邏輯器件供應(yīng)商買到,如Motorola, Fairchild Semiconductor, Toshiba, ST Microelectronics 和許多其它供應(yīng)商等。

       其它器件用單個(gè)信號(hào)激活引導(dǎo)加載程序,因此不需要這個(gè)緩沖器。這種情況下,DTR信號(hào)可以直接連接到目標(biāo)微控制器的激活引腳。

物理連接, 基于DS89C420/430/440/450的設(shè)計(jì)方案


       引導(dǎo)加載程序使用連接到XTAL1/XTAL2引腳上的時(shí)鐘源作為它的時(shí)間基準(zhǔn)。如果使用晶振,它必須滿足器件數(shù)據(jù)手冊(cè)中列出的推薦指標(biāo)(基頻模式下的諧振,并行AT型切片,負(fù)載電容量等)。由于引導(dǎo)加載程序進(jìn)行自動(dòng)波特率測(cè)量依賴于內(nèi)部定時(shí)器,因此對(duì)與引導(dǎo)加載程序兼容的頻率范圍有一些限制。對(duì)于您用到的具體器件,其與引導(dǎo)加載程序兼容的時(shí)鐘頻率范圍請(qǐng)參考相關(guān)用戶指南。  
       軟件

       引導(dǎo)加載程序激活后,微控制器將會(huì)查詢串行端口,尋找一個(gè)8數(shù)據(jù)位,無(wú)奇偶校驗(yàn),一個(gè)停止位(8-N-1)格式的回車(0Dh)字符。引導(dǎo)加載程序軟件測(cè)量這個(gè)字符中高低電平的時(shí)間長(zhǎng)度來(lái)確定主機(jī)系統(tǒng)的波特率。這種自動(dòng)波特率特性允許引導(dǎo)加載程序和許多主機(jī)系統(tǒng)進(jìn)行通訊,而不用限制固定的波特率。

       一旦調(diào)用了引導(dǎo)加載程序并計(jì)算好波特率,器件將會(huì)發(fā)送一個(gè)提示信息來(lái)識(shí)別器件。然后器件將會(huì)顯示一個(gè)提示符并且等待命令。同樣,不同的產(chǎn)品系列其命令集不盡相同,但它們通常是單ASCII字符并且總是包括加載,校驗(yàn)和擦除存儲(chǔ)器命令等。欲知命令列表請(qǐng)查詢具體器件的用戶指南。

 



       簡(jiǎn)單的引導(dǎo)加載程序接口允許使用幾種方法來(lái)實(shí)現(xiàn)PC機(jī)與目標(biāo)微控制器間的通訊。最簡(jiǎn)單的方法是使用Dallas Semiconductor的微控制器工具包(MTK)軟件。MTK是一種能用來(lái)與大部分Dallas Semiconductor微控制器的ROM/引導(dǎo)加載程序進(jìn)行通訊的PC應(yīng)用程序。它具有高度前端特征,簡(jiǎn)化了目標(biāo)配置,上傳、下載代碼以及特殊功能配置等任務(wù)操作。

       主窗口允許用戶直接向目標(biāo)微控制器輸入命令。目標(biāo)加載程序支持的許多命令都可以由MTK的主窗口直接輸入。對(duì)于需要特殊通訊協(xié)議的文件相關(guān)命令,也提供了特殊支持。

 

微控制器工具包


        如果是基于DS5000FP, DS5001FP, DS5002FP, 或DS80C400等目標(biāo)微控制器,也可以使用簡(jiǎn)單的終端仿真器,如Procomm Plus 或超級(jí)終端來(lái)進(jìn)行通訊。Dallas Semiconductor其它基于8051的微控制器使用一種交互式加載協(xié)議,這種協(xié)議需要協(xié)議識(shí)別類應(yīng)用。

       調(diào)試通訊問(wèn)題

       以下是通過(guò)引導(dǎo)加載程序和微控制器通訊時(shí)所遇到的常見(jiàn)問(wèn)題列表。

      (1) 錯(cuò)誤時(shí)鐘頻率

       如果器件工作在錯(cuò)誤的時(shí)鐘頻率下,引導(dǎo)加載程序可能不會(huì)完成自動(dòng)波特率功能。核對(duì)用戶指南選擇所支持的頻率。如果懷疑問(wèn)題是由時(shí)鐘頻率引起的,強(qiáng)烈推薦使用11.0592MHz的晶振調(diào)試任何引導(dǎo)加載程序問(wèn)題。這是一個(gè)非常標(biāo)準(zhǔn)的微控制器工作頻率,能夠生成大部分標(biāo)準(zhǔn)波特率。

       (2)其它應(yīng)用干擾COM端口

       后臺(tái)應(yīng)用程序可能有意或無(wú)意地干擾所選擇的PC機(jī)COM端口。檢查任務(wù)管理器以查找可能的沖突源。

       (3)PC的波特率相對(duì)于所選擇的工作頻率過(guò)快

       在較低的工作頻率下(約低于5MHz)器件可能不能和高波特率進(jìn)行自動(dòng)波特率匹配,也可能在處理大文件時(shí)導(dǎo)致緩沖器溢出。降低波特率并重試。

       (4)微控制器不工作

       很可能觀察到的故障不是和引導(dǎo)加載程序有關(guān),而是和微控制器自身有關(guān)。以下是排除系統(tǒng)級(jí)故障的簡(jiǎn)短診斷列表。

       器件的所有電源引腳是否都提供了正確的電壓? 為了讀數(shù)精確,要確保探測(cè)微控制器的實(shí)際引腳而不是與之相連的電路板上的引線。

       EA\引腳保持低電平時(shí),地址引腳是否跳變?許多器件在EA\置低時(shí),會(huì)將器件置于外部訪問(wèn)模式,強(qiáng)迫器件從外部總線上獲取指令。雖然不會(huì)立刻證明器件是否產(chǎn)生正確的地址,但是地址總線的變化表明微控制器正處于工作狀態(tài)。
       某些器件的ALE引腳在缺省條件下是來(lái)回切換的。是切換的嗎?它和預(yù)期的頻率相匹配嗎?對(duì)于大多數(shù)器件,ALE信號(hào)會(huì)以振蕩器頻率的某個(gè)分頻進(jìn)行振蕩。

       器件是否有足夠的去耦電容?大部分Dallas Semiconductor的微控制器工作在比傳統(tǒng)對(duì)應(yīng)器件更高的內(nèi)部時(shí)鐘速率上。直接替換設(shè)計(jì)或升級(jí)可能會(huì)要求額外的電容,以實(shí)現(xiàn)性能提高。

       (5)微控制器工具包版本過(guò)期

       您是否在使用最新版本的微控制器工具包軟件?

       (6)勘誤表?xiàng)l件

       您是否已經(jīng)核對(duì)了對(duì)應(yīng)的勘誤表,以查閱任何相關(guān)的勘誤信息?雖然這種情況很少出現(xiàn),但有可能引

 

導(dǎo)加載程序和某個(gè)器件版本的發(fā)布規(guī)范有偏差。

       (7)電纜線過(guò)長(zhǎng)

       主控計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)間的電纜過(guò)長(zhǎng)會(huì)降低信號(hào)的質(zhì)量。對(duì)于電纜長(zhǎng)度應(yīng)該是多少?zèng)]有明確的規(guī)定,但是遵守標(biāo)準(zhǔn)的操作原則如使用屏蔽電纜,遠(yuǎn)離電動(dòng)機(jī)和磁性線圈等噪聲源,應(yīng)該是有幫助的。使用中降低波特率能夠減小長(zhǎng)電纜效應(yīng)。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。