《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于MV10微處理器的在線編程IP核設(shè)計與驗證
基于MV10微處理器的在線編程IP核設(shè)計與驗證
來源:電子技術(shù)應(yīng)用2012年第8期
虞 超1, 胡越黎1,2, 王龍杰1, 劉廷堯1
1. 上海大學 機電工程與自動化學院,上海 200072; 2. 新型顯示技術(shù)及應(yīng)用集成教育部重點實驗室,上海 200072
摘要: 基于MV10微處理器設(shè)計了一個簡單可靠的在線編程IP核,可以將BIN文件直接寫入其片上SRAM進行程序調(diào)試。該IP核嵌入在MV10中 0.35 ?滋m工藝線上流片成功并通過了板級驗證。
中圖分類號: TN47
文獻標識碼: A
文章編號: 0258-7998(2012)08-0126-03
Online programming IP core design and verification based on MV10 MCU
Yu Chao1, Hu Yueli1,2, Wang Longjie1, Liu Tingyao1
1. School of Mechanical and Electronic Engineering and Automation, Shanghai University, Shanghai 200072, China; 2. Key Laboratory of Advanced Display and System Application, Shanghai 200072, China
Abstract: The paper mainly describe the design of a simple and reliable online programming IP core for MV10.The module can write BIN file into the on-chip SRAM for program debugging. The IP core embedded in the MV10 has passed silicon verification 0.35 ?滋m mix-signal library.
Key words : MV10; online programming; high sample precision; error detection; host computer program

    一般而言,在線編程ISP(In System Programming)是指依靠某種外部工具(除了常規(guī)的并行編程器以外)直接給處理器內(nèi)部集成的程序存儲器編程[1-2]。隨著片上系統(tǒng)(SoC)設(shè)計的流行,IP核復(fù)用逐漸成為研究的重點[3-4]。為SoC配置在線編程IP核,將極大方便系統(tǒng)的調(diào)試與運行。MV10微處理器是本課題組自主開發(fā),擁有完全知識產(chǎn)權(quán)的專用集成電路芯片[5],它適用于汽車電子領(lǐng)域,主要用于汽車車身的控制。該芯片具有INTEL8051指令架構(gòu)內(nèi)核,并且嵌入了PWM、ADC、CAN等IP核,具有數(shù)模混合功能的SoC系統(tǒng)。本文以MV10片上系統(tǒng)為目標對象,給出了一種在線編程的IP核實現(xiàn)方案。

1 MV10微處理器
    MV10微處理器已通過硅驗證,使用GLOBAL FOUNDRY公司的0.35 μm、2層多晶硅、4層金屬混合信號工藝,3.3 V電源,運行頻率可達24 MHz,具有64 KB存儲器尋址空間,8 KB×8片內(nèi)OTP程序存儲空間,256 B的內(nèi)部數(shù)據(jù)存儲器,內(nèi)置4個模擬量輸入的10位模數(shù)轉(zhuǎn)換通道,1個單獨的UART通信模塊,5個16位的定時器計數(shù)器,11個兩級優(yōu)先級中斷源,支持睡眠空閑模式,復(fù)位可從睡眠模式中喚醒芯片,采用DIP52封裝。
2 在線編程IP核設(shè)計
    MV10片上系統(tǒng)嵌入在線編程IP核,上位機通過串口對其片上SRAM進行程序燒寫,使MV10具有在線調(diào)試、編程的功能,圖1為在線編程系統(tǒng)結(jié)構(gòu)圖。

2.1 頂層設(shè)計
    在線編程IP核包含了時序控制模塊、位流接收模塊、位流發(fā)送模塊及SRAM接口管理模塊。圖1中,pc_data_in是一個接收上位機數(shù)據(jù)的串行端口,pc_data_out是一個向上位機返回數(shù)據(jù)幀驗證信息的串行端口。通過Start口切換MV10的狀態(tài)(0為程序燒寫模式,1為正常工作模式)。
2.2 時序控制模塊
    時序控制模塊采用了兩級同步、逐幀校正及中間采樣三種方法,保證了數(shù)據(jù)采樣的高精確性。
    如圖2所示,上位機發(fā)送的數(shù)據(jù)流pc_data_in經(jīng)過兩級同步產(chǎn)生了穩(wěn)定的數(shù)據(jù)流pc_data_in_reg,有效地避免了亞穩(wěn)態(tài)的傳播。第三級同步產(chǎn)生的pc_data_in_reg_reg信號用以檢測數(shù)據(jù)幀起始位。

2.3 位流接收模塊
 在線編程模塊中設(shè)定的數(shù)據(jù)幀格式為:1位起始位,8位數(shù)據(jù)位,1位校驗位與1位停止位。
   位流接收模塊的主要功能:
 (1)根據(jù)數(shù)據(jù)幀的打包格式對時序控制模塊采樣到的位流進行解包,提取每一幀中的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)寫入內(nèi)部寄存器,再由SRAM接口管理模塊將其寫入片上SRAM。
 (2) 對每一幀數(shù)據(jù)進行奇校驗與幀校驗,產(chǎn)生校驗標志。
 錯誤檢驗機制RTL實現(xiàn):
     If(bit_cnt==4’d11)
          error<=(parity_error|frame_error)
     else
       error<=1&rsquo;b0;
其中bit_cnt是數(shù)據(jù)流位計數(shù)器,當檢測到數(shù)據(jù)起始位時從&ldquo;0&rdquo;開始計數(shù),一幀數(shù)據(jù)從&ldquo;0&rdquo;計到&ldquo;10&rdquo;,&ldquo;11&rdquo;時返回錯誤標志,即寫入一幀數(shù)據(jù)實際需要12個采樣周期。parity_error為奇校驗錯誤標志,&ldquo;1&rdquo;表示有奇校驗錯誤;frame_error為幀錯誤校驗標志,&ldquo;1&rdquo;表示有幀錯誤;error是總校驗標志,&ldquo;1&rdquo;表示此幀數(shù)據(jù)錯誤,使發(fā)送數(shù)據(jù)模塊向上位機發(fā)送00H,SRAM接口管理模塊在檢測到error信號為&ldquo;1&rdquo;時地址位不增加。
2.4 位流發(fā)送模塊
    位流發(fā)送模塊的主要功能:
 (1)MV10上電或者復(fù)位后,該模塊自動向上位機發(fā)送55H以檢測MV10與上位機之間的通信是否正常。如上位機顯示55H,即表示下位機已準備好接收上位機發(fā)送的數(shù)據(jù)。如果無法顯示55H,則需要檢查上位機是否配置正確、下位機是否切換到程序燒寫模式以及它們之間的連接是否正確。
    (2)位流接收模塊接收到一幀數(shù)據(jù)后,會對該幀數(shù)據(jù)進行校驗,并發(fā)送校驗標志。位流發(fā)送模塊根據(jù)校驗標志作出判斷,若校驗正確,則向上位機發(fā)送FFH,否則發(fā)送00H。
2.5 SRAM接口管理模塊
     參考Memory Compiler生成的RA_512x8模型設(shè)計SRAM寫操作時序。其中addr[8:0]為9位地址信號,CEB為片選信號(低電平有效),WEB為讀寫選擇信號(高讀低寫),data_final[7:0]為8位數(shù)據(jù)信號。如圖4所示。

    當MV10模式開關(guān)Start為&ldquo;0&rdquo;時,MV10工作在編程模式,此時SRAM片選信號與寫使能信號有效,將校驗正確的一幀數(shù)據(jù)寫入SRAM,地址自動加&ldquo;1&rdquo;(地址初始化或復(fù)位后為00H)。如數(shù)據(jù)校驗錯誤,則數(shù)據(jù)不會被寫入SRAM,地址位保持不變。
    當MV10模式開關(guān)Start為&ldquo;1&rdquo;時,MV10工作在運行模式,此時SRAM片選信號與寫使能信號無效,即使數(shù)據(jù)接收模塊正確接收到數(shù)據(jù),也不會寫入到SRAM中。
3 上位機軟件設(shè)計
3.1 MV_IDE概述

    上海大學MV系列MCU匯編程序開發(fā)軟件[6]使用Windows平臺應(yīng)用程序開發(fā)環(huán)境:Visual Studio 2010進行開發(fā),采用C++語言作為主要開發(fā)語言。上海大學MV系列MCU匯編程序開發(fā)軟件作為MV系列微控制器(MCU)的開發(fā)匯編程序開發(fā)平臺,設(shè)計了基于INTEL8051指令的匯編程序編輯器和編譯器,并針對新一代MV系列MCU中的在線編程模塊,設(shè)計了相應(yīng)的程序燒寫功能,可將編譯后的機器碼燒寫到MV10內(nèi)部的程序SRAM中。
3.2 燒寫功能程序設(shè)計
   上位機程序中的燒寫功能可以將MV_IDE編譯后產(chǎn)生的BIN文件通過串口發(fā)送給MV10,MV_IDE根據(jù)在線編程模塊的校驗返回標志決定發(fā)送下一幀數(shù)據(jù)或者重新發(fā)送當前數(shù)據(jù)幀。
    選擇主界面的燒寫按鍵打開燒寫界面,在燒寫文件選框選擇需要燒寫的BIN文件。由于BIN文件是特殊的二進制格式文件,所以在點擊燒寫文件確定后MV_IDE會讀取BIN文件并將其轉(zhuǎn)化為16進制單字節(jié)的形式,并在工程目錄下保持為bin.txt文本文件,便于以單字節(jié)進行發(fā)送。
    在燒寫界面中,&ldquo;串口號&rdquo;用于選擇PC機的串口,&ldquo;串口設(shè)置&rdquo;第一位設(shè)置波特率;第二位設(shè)置校驗位,N表示沒有校驗位,O表示奇校驗,E表示偶校驗;第三位設(shè)置數(shù)據(jù)位數(shù);最后一位設(shè)置停止位數(shù)。實際燒寫時選擇9600,O,8,2。串口配置界面如圖5所示。

4.2 板級驗證

 


    對包含在線編程IP核的芯片進行板級測試,將事先經(jīng)過片外EEPROM驗證的項目程序通過上位機寫入目標板,均可實現(xiàn)相應(yīng)的功能,目標測試板界面如圖7所示。

    本文提出的在線編程模塊IP核具有高采樣精度并帶有錯誤檢測校正機制,是一種簡易可靠的在線程序調(diào)試實現(xiàn)方法。該IP核通過了Modelsim仿真、FPGA驗證及芯片板級驗證,并已應(yīng)用在MV10的程序開發(fā)中。本文給出的在線編程IP核的方法,雖然是基于MV10片上系統(tǒng)提出的,但亦可用于其他片上系統(tǒng)。
參考文獻
[1] Hu Yueli, Xiong Bing. Design of an embedded on-chip  debug support module of an MCU[C]. The 8thIEEE CPMT Conference on High Density Microsystem Design and Packaging and Component Failure Analysis(HDP&rsquo;06), IEEE, June 2006.
[2] 楊朝陽,羅永革 一種基于軟件SCI的在線編程方法[J]. 蘇州大學學報,2010,30(2):45-48.
[3] 胡越黎, 周諶. 基于IP復(fù)用的片上級系統(tǒng)的構(gòu)建與驗證[J].計算機測量與控制,2010,18(3):629-631.
[4] Hu Yueli, Xu lei. Reusable design of CAN bus controller IP core[C]. 4th International Conference on Measuring Technology and Mechatronics Automation, ICMTMA 2012.
[5] 黃俊良,胡越黎,王昆. MV10微處理器與APB總線的接口設(shè)計[J]. 計算機測量與控制, 2011,19(12):89-95.
[6] 上海大學.MCU匯編程序開發(fā)平臺軟件(MV_IDE)V1.0用戶手冊[M].2012.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。