《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于MV10微處理器的在線(xiàn)編程IP核設(shè)計(jì)與驗(yàn)證
基于MV10微處理器的在線(xiàn)編程IP核設(shè)計(jì)與驗(yàn)證
來(lái)源:電子技術(shù)應(yīng)用2012年第8期
虞 超1, 胡越黎1,2, 王龍杰1, 劉廷堯1
1. 上海大學(xué) 機(jī)電工程與自動(dòng)化學(xué)院,上海 200072; 2. 新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海 200072
摘要: 基于MV10微處理器設(shè)計(jì)了一個(gè)簡(jiǎn)單可靠的在線(xiàn)編程IP核,可以將BIN文件直接寫(xiě)入其片上SRAM進(jìn)行程序調(diào)試。該IP核嵌入在MV10中 0.35 ?滋m工藝線(xiàn)上流片成功并通過(guò)了板級(jí)驗(yàn)證。
中圖分類(lèi)號(hào): TN47
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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

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

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

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

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

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

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

4.2 板級(jí)驗(yàn)證

 


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

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

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