《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于MV10微處理器的在線編程IP核設(shè)計(jì)與驗(yàn)證
基于MV10微處理器的在線編程IP核設(shè)計(jì)與驗(yàn)證
來源:電子技術(shù)應(yīng)用2012年第8期
虞 超1, 胡越黎1,2, 王龍杰1, 劉廷堯1
1. 上海大學(xué) 機(jī)電工程與自動化學(xué)院,上海 200072; 2. 新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海 200072
摘要: 基于MV10微處理器設(shè)計(jì)了一個簡單可靠的在線編程IP核,可以將BIN文件直接寫入其片上SRAM進(jìn)行程序調(diào)試。該IP核嵌入在MV10中 0.35 ?滋m工藝線上流片成功并通過了板級驗(yàn)證。
中圖分類號: TN47
文獻(xiàn)標(biāo)識碼: 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è)計(jì)的流行,IP核復(fù)用逐漸成為研究的重點(diǎn)[3-4]。為SoC配置在線編程IP核,將極大方便系統(tǒng)的調(diào)試與運(yùn)行。MV10微處理器是本課題組自主開發(fā),擁有完全知識產(chǎn)權(quán)的專用集成電路芯片[5],它適用于汽車電子領(lǐng)域,主要用于汽車車身的控制。該芯片具有INTEL8051指令架構(gòu)內(nèi)核,并且嵌入了PWM、ADC、CAN等IP核,具有數(shù)?;旌瞎δ艿腟oC系統(tǒng)。本文以MV10片上系統(tǒng)為目標(biāo)對象,給出了一種在線編程的IP核實(shí)現(xiàn)方案。

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

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

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

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

4.2 板級驗(yàn)證

 


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

    本文提出的在線編程模塊IP核具有高采樣精度并帶有錯誤檢測校正機(jī)制,是一種簡易可靠的在線程序調(diào)試實(shí)現(xiàn)方法。該IP核通過了Modelsim仿真、FPGA驗(yàn)證及芯片板級驗(yàn)證,并已應(yīng)用在MV10的程序開發(fā)中。本文給出的在線編程IP核的方法,雖然是基于MV10片上系統(tǒng)提出的,但亦可用于其他片上系統(tǒng)。
參考文獻(xiàn)
[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]. 蘇州大學(xué)學(xué)報(bào),2010,30(2):45-48.
[3] 胡越黎, 周諶. 基于IP復(fù)用的片上級系統(tǒng)的構(gòu)建與驗(yàn)證[J].計(jì)算機(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ì)[J]. 計(jì)算機(jī)測量與控制, 2011,19(12):89-95.
[6] 上海大學(xué).MCU匯編程序開發(fā)平臺軟件(MV_IDE)V1.0用戶手冊[M].2012.

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