在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 設計應用 > 基于68MC376的ISP實現(xiàn)方法

            基于68MC376的ISP實現(xiàn)方法

            作者:■ 清華大學汽車工程系 劉原 李建秋 歐陽明高 時間:2005-04-27 來源:eaw 收藏

            摘    要:本文在Motorola 68MC376平臺上通過軟硬件設計實現(xiàn)了在系統(tǒng)編程()的功能。
            關鍵詞:;

             引言
            目前,在汽車電子中有很多常用的,如Motorola 68MC376等,它們在硬件上并不直接支持,從而在應用中造成一定程度的不便。本文研究的目的即是在Motorola 68MC376上通過相關的硬件設計和軟件設計實現(xiàn)ISP,使其同樣具有在系統(tǒng)編程的能力。
            系統(tǒng)設計
            總體設計和難點
            讓Motorola 68MC376單片機具有ISP能力,需要有專門的硬件支持以及上位機和下位機的軟件支持。總體ISP設計框圖如圖1所示。
            由圖1可知,本設計所使用的ISP方法是從上位機讀取編程字節(jié),通過串口傳輸?shù)较挛粰C,并且通過下位機程序將編程字節(jié)寫到下位機的可擦寫存儲器中。
            這樣一個設計存在兩個難點。首先,由于硬件68MC376并不具備內部的ROM,所以必須使用合適的Flash存儲器搭建存儲器擴展電路,才能實現(xiàn)存放應用程序的目的,為ISP提供基本的硬件基礎。其次,由于ISP的下位機應用程序均存在于唯一的Flash中,即在讀取自身程序的同時對自身進行擦寫等操作,這顯然是不可能的,必須使用其他的獨特方法才能實現(xiàn)下位機的軟件編程操作。
            硬件設計
            為了使68MC376具有ISP能力,首先需要圍繞該芯片設計Flash ROM擴展電路硬件和串口的收發(fā)電路。
            圖2中包括兩部分電路的設計,即Flash擴展電路的設計和串口設計。
            Flash擴展電路主要包括地址總線(ADDRESS)、數(shù)據(jù)總線(DADA BUS)以及讀寫和片選信號的連接。由于68MC376外部數(shù)據(jù)總線為16位,故選擇兩片AM29F040作為外部擴展Flash。該Flash芯片單片容量為4Mbit,所以擴展的只讀存儲器共計1Mbyte。
            由于使用68MC376的CSBOOT連接了兩片F(xiàn)lash的片選端,所以圖2所連接的Flash ROM可以實現(xiàn)硬件自啟動功能。為實現(xiàn)此功能,需要對其物理地址進行配置。在本設計中,F(xiàn)lash的地址被配置在0x80000的位置。
            圖2中的串口電路為使用了光電隔離措施的串口驅動電路。由于該電路可能工作在電磁兼容環(huán)境比較惡劣的場合,所以使用6N137設計光隔電路,以免外界干擾對單片機產生影響。
            軟件設計
            軟件設計主要包括上位機軟件設計和下位機軟件設計,二者需要遵循同樣的協(xié)議,相互配合工作。
            圖3描述了在系統(tǒng)編程時上位機和下位機的配合流程。通常在下位應用程序中,該部分在系統(tǒng)編程的代碼處于休眠狀態(tài),當串口接收到編程請求時,該部分代碼才被激活并產生相應的效果。該流程中設計了一個編程開鎖的握手過程,這是為了防止誤操作,從而保證下位機在系統(tǒng)編程的代碼不會被意外的激活。
            下位機軟件
            圖3中下位機編程初始化部分主要完成Flash讀寫允許、信號串口波特率的重新定義、RAM配置以及ISP代碼拷貝等任務。為了提高ISP速度,通常將串口波特率設為57600bit/s。RAM使用單片機內部的TPURAM,并將其配置在從0x10000開始的地址上。
            圖3下位機流程中被框起的是一個特殊的部分。通常下位機的應用程序都是在ROM里執(zhí)行的。但是由于在ISP過程中,系統(tǒng)不可能一邊從Flash ROM讀取指令,一邊對Flash ROM進行擦寫操作,所以這里采用了特殊的子函數(shù)映射的方法完成這一功能,即在源代碼設計中,所有的ISP子函數(shù)均是通過計算相對地址得到運行的(見圖4)。
             系統(tǒng)從Flash ROM啟動后,位于地址0x81000處有一段代碼具有ISP的串口讀數(shù)功能,則在實際執(zhí)行時先要將這段代碼拷貝到地址0x10000,然后跳轉至映射的地址并執(zhí)行相應的指令。下面一段源代碼為串口接收(sci_receive)的源程序例。
            MOVE.L #FlashBaseAddr,D0;
            file://得到ISP代碼在Flash中的基地址
            MOVE.L #sci_receive,A0;
            file://得到sci_receive子函數(shù)的實際地址
            SUB.L  D0,A0;
            file://二者相減得到基地址偏移量
            ADD.L  RAMBaseAddr,A0;
            file://加上RAM基地址,得到RAM中//sci_receive的映射地址
            JSR     (A0);
            file://跳往映射地址處執(zhí)行
            上位機解碼工作
            上位機軟件設計中,比較重要的一部分是SX文件的解碼工作。
            SX文件一般以S0行標志文件代碼部分開始,S9行表示文件代碼部分結束。中間部分一般以S1、S2或者S3開頭,表示不同的尋址范圍。
            以S20C08000000002000000 852145D為例,該部分代碼為24位尋址(即地址為3個字節(jié))。具體地址為0x0C0800,后面除了最后一個字節(jié)以外均為實際二進制代碼的字符表達形式,最后一個字節(jié)5D為該行的校驗碼。
            該代碼需要通過重新編碼后方可被單片機直接使用。考慮到單片機的運算速度遠不如上位機PC,所以這部分工作由上位機完成。上位機每個編程循環(huán)讀取一行SX格式的代碼,獲取地址并且完成解碼后,通過串口發(fā)送給下位機。下位機從串口獲取該地址和該行編碼后,直接調用ISP中的Flash燒寫程序對Flash進行編程。
            實際結果
            在實際工作中使用Matlab/GUI編寫了上位機解碼和發(fā)送程序,配合下位機的ISP軟件工作,各方面表現(xiàn)均正常。嘗試下載76K的SX格式的下位機軟件時,用時大約為1分鐘。

            結語
            本文使用Flash作為ROM擴展了68 MC376的存儲器硬件電路,設計了串口電路的硬件,完成了ISP硬件的設計;通過SX文件上位機解碼,以及下位機獨特的映射執(zhí)行代碼的方式,完成了ISP的軟件設計。
            考慮到68K系列芯片的相似性,類似芯片如68 MC332等均可以直接使用該方法實現(xiàn)ISP在系統(tǒng)編程的功能。■

            參考文獻
            1 Motorola 68MC376 User誷 Manual
            2 AM29F010 data sheet



            關鍵詞: ISP 單片機

            評論


            相關推薦

            技術專區(qū)

            關閉