999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STM32的CPLD離線燒寫系統(tǒng)設(shè)計(jì)※

2015-07-03 03:33:48劉艷萍趙騰張進(jìn)東
關(guān)鍵詞:嵌入式系統(tǒng)

劉艷萍,趙騰,張進(jìn)東

(1.河北工業(yè)大學(xué) 信息工程學(xué)院,天津300400;2.北京泰德瑞普科技有限公司)

引 言

Altera公司為在系統(tǒng)編程(ISP)提供了軟件級標(biāo)準(zhǔn):Jam STAPL JEDEC標(biāo)準(zhǔn)JESD-71[2],它徹底改變了可編程邏輯器件(PLD)的編程和配置。該標(biāo)準(zhǔn)支持當(dāng)前所有使用JTAG進(jìn)行在系統(tǒng)編程的可編程邏輯器件。對于嵌入式系統(tǒng),該標(biāo)準(zhǔn)滿足所有的必要條件,例如:文件小、便于操作以及平臺獨(dú)立。

Jam STAPL(標(biāo)準(zhǔn)測試和編程語言)Byte-Code Player是一種讀取并執(zhí)行.jbc文件的解釋性程序。一個(gè).jbc文件可包含多種功能,例如,對CPLD進(jìn)行編程、配置、驗(yàn)證、擦除以及空白檢查等[3]。Jam STAPL Byte-Code Player執(zhí)行軟件可以訪問用來執(zhí)行基于IEEE 1149.1標(biāo)準(zhǔn)的所有指令的IEEE 1149.1信號。執(zhí)行軟件也能夠處理.jbc文件中用戶定義的操作和程序。.jbc文件是二進(jìn)制文件,Jam STAPL Byte-Code Player執(zhí)行軟件解析.jbc文件描述信息后,將其翻譯成設(shè)置到目標(biāo)CPLD中的數(shù)據(jù)和算法。這個(gè)執(zhí)行軟件不針對某一供應(yīng)商或者器件體系結(jié)構(gòu)進(jìn)行編程,它只讀取并解釋Jam STAPL規(guī)范定義的語句[3]。

針對這種情況,設(shè)計(jì)了一種基于STM32的CPLD離線燒寫模塊。離線CPLD燒寫器是針對生產(chǎn)和現(xiàn)場調(diào)試等應(yīng)用場合而設(shè)計(jì)的一款燒寫設(shè)備,它的出現(xiàn)可以拋開PC機(jī)燒寫的固有模式,無需在線JTAG下載器甚至是電源,就可以輕松完成CPLD的燒寫功能,從而大大提高生產(chǎn)效率,降低了現(xiàn)場系統(tǒng)升級及調(diào)試時(shí)對設(shè)備和環(huán)境的苛刻需求。該模塊的成功實(shí)現(xiàn),極大地方便了用戶對CPLD的燒寫和更新。對廠家而言,生產(chǎn)線上就可以告別笨重的電腦和繁瑣的操作,修改和維護(hù)已銷售產(chǎn)品中的CPLD邏輯,再不需要技術(shù)人員背著沉重的筆記本和各種線纜出差,所以其意義非常重大。

1 離線燒寫系統(tǒng)設(shè)計(jì)

CPLD的離線燒寫系統(tǒng)由兩部分組成:一部分是以嵌入式處理器STM32為核心的硬件平臺[4],另一部分是以Jam STAPL Byte-Code Player為核心的軟件系統(tǒng)。

1.1 核心芯片的介紹

本系統(tǒng)所使用的嵌入式處理器是ST公司的產(chǎn)品STM32F103ZET6——基于ARM架構(gòu)芯片來完成的嵌入式CPLD離線燒寫[4]。使用STM32F103ZET6是因?yàn)樵撔酒夹g(shù)相當(dāng)成熟,在新的平臺上移植非常方便,而且使用其自帶的固件庫,極大地方便了程序員項(xiàng)目的開發(fā),減少了一些不必要的麻煩。同時(shí),其處理器的速度為72 MHz,足夠強(qiáng)大;MCU內(nèi)部集成的功能單元非常多,簡化了系統(tǒng)的設(shè)計(jì),增強(qiáng)了系統(tǒng)的穩(wěn)定性和可靠性[4-5]。

1.2 軟件工具

本系統(tǒng)使用的軟件開發(fā)環(huán)境為Keil u Vision4。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(u Vision)將這些部分組合在一起。運(yùn)行Keil軟件需要 Win98、NT、Win2000、WinXP、Win7等操作系統(tǒng)[6]。

如果使用C語言編程,那么Keil幾乎就是不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。Keil u Vision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺監(jiān)視器。新的用戶界面可以更好地利用屏幕空間,更有效地組織多個(gè)窗口,提供一個(gè)簡潔、高效的環(huán)境來開發(fā)應(yīng)用程序。新版本支持更多最新的ARM芯片,還添加了一些其他新功能。

1.3 系統(tǒng)燒寫框圖

系統(tǒng)的燒寫框圖如圖1所示。

圖1 系統(tǒng)燒寫框圖

由Quartus軟件產(chǎn)生.jbc文件,如果所產(chǎn)生的.jbc文件過大,則將文件放置于TF卡中,之后通過數(shù)據(jù)的讀取,將文件數(shù)據(jù)讀到片內(nèi)FLASH。在STM32F103ZET6主控芯片中已經(jīng)成功固化了Jam STAPL Byte-Code Player執(zhí)行軟件,Jam STAPL Byte-Code Player執(zhí)行軟件解析,并執(zhí)行.jbc文件包含的信息,經(jīng)過主控芯片模擬JTAG的時(shí)序,在系統(tǒng)時(shí)鐘的驅(qū)動下燒寫目標(biāo)板CPLD。

2 硬件系統(tǒng)設(shè)計(jì)

主控芯片選擇STM32F103ZET6,該芯片片上集成512 KB的FLASH存儲器,完全能夠容納本系統(tǒng)所需求的.jbc文件,不必再外接FLASH芯片。如果用戶所生成的用于燒寫CPLD的.jbc文件大小比芯片片內(nèi)FLASH存儲容量大,就需要外擴(kuò)FLASH芯片,以保證文件的完整性[7]。在生產(chǎn)上,為了適應(yīng)絕大部分的數(shù)據(jù)燒寫文件,可以把.jbc文件放到TF卡中。通過文件系統(tǒng),將數(shù)據(jù)一塊一塊地搬移到片內(nèi)FLASH中去,這樣一來,不管多大的數(shù)據(jù)文件,都不用擔(dān)心存儲空間不足的問題。

圖2為硬件系統(tǒng)結(jié)構(gòu)框圖。

圖2 硬件系統(tǒng)結(jié)構(gòu)框圖

硬件系統(tǒng)主要包括外部晶振電路、電源模塊、用于調(diào)試的20針JTAG調(diào)試接口、復(fù)位電路、串行接口USART、TF卡槽和用于燒寫的5針JTAG燒寫接口。硬件系統(tǒng)組成非常簡潔,JTAG調(diào)試口是上位機(jī)用來調(diào)試燒寫程序,并將燒寫程序固化到STM32芯片中;外部晶振選擇8 MHz;電源電壓值選擇3.3 V;SPI總線用來讀取TF卡中的文件數(shù)據(jù);JTAG燒寫接口是用來燒寫目標(biāo)板的JTAG接口;USART串行口會打印出目標(biāo)板的燒寫信息,顯示在PC機(jī)上。USART這一部分也可以省去,因?yàn)樵诔绦蛑幸呀?jīng)設(shè)定,目標(biāo)板的CPLD燒寫成功后,會有LED燈提示。

3 軟件系統(tǒng)設(shè)計(jì)

本系統(tǒng)的軟件設(shè)計(jì)主要采用Altera公司所提供的嵌入式處理器上使用Jam標(biāo)準(zhǔn)測試和編程語言(STAPL)進(jìn)行在系統(tǒng)編程時(shí)的配置方案。

Altera公司為ISP編程提供了軟件級標(biāo)準(zhǔn):Jam STAPL JEDEC標(biāo)準(zhǔn)JESD-71,它的出現(xiàn)徹底改變了可編程邏輯器件(PLD)的編程和配置。該標(biāo)準(zhǔn)支持當(dāng)前所有使用JTAG進(jìn)行在系統(tǒng)編程的可編程邏輯器件。對于嵌入式系統(tǒng),該標(biāo)準(zhǔn)滿足所有的必要條件,例如文件、便于操作以及平臺獨(dú)立。

3.1 燒寫文件的生成

系統(tǒng)用于燒寫CPLD的.jbc文件是由Altera公司提供的Quartus軟件生成的[9]。其步驟如下:

①在TOOLs菜單中,單擊Programmer。

②單擊Add File,為所選邏輯器件選擇編程文件。

③在File菜單上,指向Create/Update、單機(jī)Create Jam、SVF或者ISC File。

④在列出的File Format中,選擇.jbc文件格式。

⑤單擊OK按鈕。

3.2 Jam STAPL Byte-Code Player執(zhí)行軟件

系統(tǒng)所需要移植的源代碼主要包括9個(gè)文件:JBICOMP.C 文 件、JBIJTAG.C 文 件、JBIMAIN.C 文 件、JBISTUB.C文件、JBC_FILE.C文件、JBICOMP.H 文件、JBIJTAG.H文件、JBIPORT.H文件和JBIEXPRT.H文件。以上9個(gè)文件構(gòu)成了Jam STAPL Byte-Code Player執(zhí)行軟件。圖3為該執(zhí)行軟件源代碼結(jié)構(gòu)圖。

圖3 執(zhí)行軟件源代碼結(jié)構(gòu)圖

Quartus軟件生成的.jbc文件,存放在JBC_FILE.C文件中。Jam STAPL Byte-Code Player解析.jbc文件中的描述信息,將其翻譯成設(shè)置到目標(biāo)CPLD中的數(shù)據(jù)和算法。一個(gè).jbc文件可包括多種功能,例如對CPLD進(jìn)行編程、配置、驗(yàn)證、擦除以及空白檢查等。Jam STAPL Byte-Code Player是用C語言寫的,應(yīng)用于16位和32位處理器,其源代碼的一部分也適用于8位處理器。把執(zhí)行軟件源代碼分成3類:

①JBCSTUB.C文件:它是專門用于處理I/O功能的代碼平臺,應(yīng)用到所使用的硬件上。

②JBC_FILE.C文件:用于存放.jbc文件中的數(shù)據(jù)。在該文件中定義了一個(gè)數(shù)組jbc_code,該數(shù)組存儲的是十六進(jìn)制的數(shù),這些十六進(jìn)制的數(shù)是由.jbc文件轉(zhuǎn)換得來,本系統(tǒng)所用.jbc文件的大小為43 KB。

③所有其他的C文件:執(zhí)行Player內(nèi)部功能的通用代碼。

3.3 軟件的移植與實(shí)現(xiàn)

本系統(tǒng)是基于嵌入式處理器的CPLD的燒寫,移植代碼需要對其中的一些C文件進(jìn)行修改。Jam STAPL Byte-Code Player執(zhí)行軟件的默認(rèn)配置包括支持DOS、32位Windows以及UNIX的代碼,移植到本系統(tǒng)所選的平臺上,需要使用預(yù)處理聲明#define來去掉這些代碼。移植主要修改的文件為JBISTUB.C文件,其中需要定制幾個(gè)函數(shù):

①jbi_jtag_io():為4個(gè)IEEE 1149.1 JTAG 信號(TDI、TMS、TDO和TCK)提供接口。

②jbi_export():把信息(例如用戶電子簽名)傳遞回調(diào)用程序(選擇默認(rèn))。

③jbi_delay():執(zhí)行期間實(shí)現(xiàn)所需的編程脈沖或者延遲。

④jbi_vector_map():處理非IEEE 1149.1JTAG信號的信號到引腳映射(選擇默認(rèn))。

⑤jbi_vector_io():對 VECTOR MAP 中定義的非IEEE 1149.1 JTAG信號進(jìn)行置位(選擇默認(rèn))。

系統(tǒng)的代碼移植包括以下4步:

①將預(yù)處理聲明設(shè)置為去掉無關(guān)代碼。

修改默認(rèn)的PORT參數(shù)為EMBEDDED來去除DOS、Windows和 UNIX源代碼以及包含庫,在JBISTUB.C文件開頭定義#define JBC_PORT EMBEDDED,即選擇的環(huán)境是嵌入式處理器平臺。

②將JTAG信號映射至硬件引腳。

JBISTUB.C中的jbi_jtag_io()函數(shù)含有發(fā)送和接收二進(jìn)制編程數(shù)據(jù)的代碼。其實(shí)現(xiàn)代碼如下:

③定制延時(shí)校準(zhǔn)。

calibrate_delay()函數(shù)確定處理器每ms運(yùn)行多少次循環(huán)。因?yàn)榫幊毯团渲眯枰_的延時(shí),因此這一校準(zhǔn)過程非常重要。默認(rèn)情況下,one_ms_delay=1000L,根據(jù)自己系統(tǒng)所使用的處理器芯片進(jìn)行修改,本系統(tǒng)定義的函數(shù)修改如下:

④修改主入口函數(shù)jbi_execute()。

Jam STAPL Byte-Code Player主入口點(diǎn)是jbi_execute()函數(shù),該函數(shù)將某些信息傳給Player,Player根據(jù)所傳達(dá)的命令作出相應(yīng)的編程動作,當(dāng)Player完成后會返回一個(gè)退出代碼,以及任何運(yùn)行時(shí)錯(cuò)誤的詳細(xì)信息。JBISTUB.C中的程序原型定義了接口:

在JBISTUB.C的main()函數(shù)中確定了傳給jbi_execute()的變量。初始化列表告訴Jam STAPL Byte-Code Player要執(zhí)行的函數(shù)類型(例如編程和驗(yàn)證),傳送該列表到j(luò)bi_execute()。必須以正確的方式來傳送初始化列表,如果初始化列表沒有被傳送或者無效,那么Jam STAPL Byte-Code Player就會檢查.jbc文件的語法。如果沒有錯(cuò)誤,那么返回一個(gè)成功退出碼,不會執(zhí)行程序函數(shù)。

移植只需要修改列表中3個(gè)參數(shù):定義program_size=43 883,單位是字節(jié),該參數(shù)是.jbc文件的大?。欢xprogram =(unsigned char * )jbi_code,該參數(shù)是指向.jbc文件的指針,也就是指向由.jbc文件轉(zhuǎn)換而來的數(shù)組jbi_code[]的指針;定義action[]= "PROGRAM\0",即Player要對CPLD進(jìn)行燒寫動作。余下的參數(shù)不用修改,保持默認(rèn)即可。主程序流程圖如圖4所示。

圖4 主程序流程圖

3.4 系統(tǒng)功能的實(shí)現(xiàn)與驗(yàn)證

系統(tǒng)所要燒寫的目標(biāo)CPLD為Altera公司生產(chǎn)的MAX II型號的器件,該器件能夠支持.jbc文件所包括的操作有5項(xiàng):Program、Blankcheck、Verify、Erase和 Read_usercode。本系統(tǒng)只選擇Program操作進(jìn)行了功能驗(yàn)證。表1為.jbc文件操作聲明定義。

對器件進(jìn)行燒寫后會返回退出代碼。無論燒寫成功與否,都會有一個(gè)退出代碼被返回。退出代碼是一個(gè)整數(shù)值,用于指示.jbc文件執(zhí)行后的結(jié)果。退出代碼為零表示成功,而非零則表示失敗,并指示出失敗的一般類型。系統(tǒng)的測試平臺和燒寫目標(biāo)板實(shí)物圖略——編者注。

在程序中已經(jīng)設(shè)定:目標(biāo)板中的CPLD燒寫成功后,目標(biāo)板的LED連閃三次,之后變成常亮的狀態(tài)。燒寫不成功,LED燈一直處于滅的狀態(tài)。通過串口在PC機(jī)上打印出燒寫成功的信息略——編者注。

表1 .jbc文件操作聲明

若返回代碼Exit code=0,表示CPLD燒寫成功;若返回其他任何非0數(shù)字,均為燒寫失敗。

結(jié) 語

該模塊的成功實(shí)現(xiàn),極大地方便了用戶對CPLD的燒寫和更新。對廠家而言,生產(chǎn)線上就可以告別笨重的電腦,省去繁瑣的操作,修改和維護(hù)已銷售產(chǎn)品中的CPLD邏輯將變得非常方便。

編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

[1]吳玉香,周建香.基于JTAG的Flash在線編程系統(tǒng)實(shí)現(xiàn)[J].化工自動化及儀表,2009,36(6):70-74.

[2]Altera.Jam STAPL [OL ].[2014-08].http://www.jamisp.com.

[3]王誠,吳繼華,范麗珍,等.Altera FPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.

[4]盧有亮.基于STM32的嵌入式系統(tǒng)原理與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2013.

[5]田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.

[6]杜延,劉從越.嵌入式實(shí)時(shí)系統(tǒng)軟件測試實(shí)踐[J].微計(jì)算機(jī)信息,2007(4-2):86-88.

[7]Stuart,R Ball.嵌入式微處理器系統(tǒng)設(shè)計(jì)實(shí)例 [M].3版.北京:電子工業(yè)出版社,2004.

[8]Kamal,Raj.嵌入式系統(tǒng):體系結(jié)構(gòu)、編程設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.

[9]鄭亞民,董曉舟.可編程邏輯器件開發(fā)軟件QuartusII[M].北京:國防工業(yè)出版社,2006.

猜你喜歡
嵌入式系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 9啪在线视频| 日日拍夜夜操| 亚洲精品波多野结衣| 国产91丝袜在线播放动漫 | 中文字幕第1页在线播| 手机永久AV在线播放| 亚洲国产91人成在线| 免费无码AV片在线观看中文| 国产精品55夜色66夜色| 中文字幕人妻av一区二区| 精品人妻系列无码专区久久| 无码免费的亚洲视频| 欧美一区二区精品久久久| 亚洲精品人成网线在线 | 亚洲欧美色中文字幕| 青青操视频免费观看| 亚洲中字无码AV电影在线观看| 亚洲一区第一页| 亚洲第一国产综合| 亚洲欧美日韩动漫| 欧美性精品| 国产九九精品视频| 伊人福利视频| 欧美怡红院视频一区二区三区| 日韩无码视频播放| 久久久四虎成人永久免费网站| 日韩无码视频播放| 亚洲精品日产AⅤ| 青青极品在线| 亚洲日本中文字幕天堂网| 国产本道久久一区二区三区| 亚洲成a人片77777在线播放| 1769国产精品视频免费观看| 欧美一区二区精品久久久| 亚洲日本在线免费观看| 人妻无码中文字幕一区二区三区| 无码丝袜人妻| 香蕉伊思人视频| 久久精品aⅴ无码中文字幕| 国产成人AV男人的天堂| 国产性爱网站| 亚洲Av综合日韩精品久久久| 都市激情亚洲综合久久| 青青草原国产av福利网站| 搞黄网站免费观看| 国产亚洲欧美在线人成aaaa| 日本精品视频一区二区| 国产高清在线观看91精品| 麻豆精品在线播放| 女人18毛片久久| 麻豆国产在线观看一区二区| 色男人的天堂久久综合| 国产成人成人一区二区| 九九久久精品国产av片囯产区| 亚洲另类国产欧美一区二区| 欧美不卡在线视频| 国产精品网址在线观看你懂的| 日韩中文精品亚洲第三区| 欧亚日韩Av| 国产嫩草在线观看| 色九九视频| 最新加勒比隔壁人妻| 国产网友愉拍精品视频| 国产成人精品第一区二区| 国产99精品久久| 国产成人乱码一区二区三区在线| 99久久精品免费视频| 国产最新无码专区在线| 性色一区| 婷婷综合在线观看丁香| 久久综合色天堂av| 国产夜色视频| 亚洲精品波多野结衣| 色综合久久久久8天国| 国产手机在线小视频免费观看| 欧美区一区二区三| 亚洲精品久综合蜜| 国产成人精品一区二区| 无码中文AⅤ在线观看| 五月天在线网站| 手机在线看片不卡中文字幕| 91精品最新国内在线播放|