- 相關(guān)推薦
單片機(jī)軟硬件聯(lián)合仿真解決方案
本文介紹一種嵌入式系統(tǒng)仿真方法,通過一種特殊設(shè)計(jì)的指令集仿真器ISS將軟件調(diào)試器軟件Keil uVision2和硬件語言仿真器軟件Modelsim連接起來,實(shí)現(xiàn)了軟件和硬件的同步仿真。
縮略詞解釋:
BFM:總線功能模塊。在HDL硬件語言仿真中,BFM完成抽象描述數(shù)據(jù)和具體的時(shí)序信號之間的轉(zhuǎn)換。
PLI:Verilog編程語言接口,是C語言模塊和Verilog語言模塊之間交換數(shù)據(jù)的接口定義。
TCL:字面意思是工具命令語言,是一種解釋執(zhí)行語言,流行EDA軟件一般都集成有TCL。使用TCL用戶可以編寫控制EDA工具的腳本程序,實(shí)現(xiàn)工具操作自動(dòng)化。
ISS:CPU指令集仿真器,可以執(zhí)行CPU的機(jī)器碼。
TFTP:簡單文件傳輸協(xié)議,Windows的tftp.exe既是該協(xié)議的客戶端實(shí)現(xiàn)。
SMART MEDIA:一種存儲(chǔ)卡,常用于數(shù)碼相機(jī)、MP3。
DMA:直接內(nèi)存訪問。用于外部設(shè)備之間高速數(shù)據(jù)轉(zhuǎn)移。
MAC:媒體接入控制器。本文中是指網(wǎng)卡芯片。
前言
傳統(tǒng)的嵌入式系統(tǒng)中,設(shè)計(jì)周期、硬件和軟件的開發(fā)是分開進(jìn)行的,并在硬件完成后才將系統(tǒng)集成在一起,很多情況下,硬件完成后才開始進(jìn)行實(shí)時(shí)軟件和整體調(diào)試。軟硬件聯(lián)合仿真是一種在物理原型可用前,能盡早開始調(diào)試程序的技術(shù)。
軟硬件聯(lián)合仿真有可能使軟件設(shè)計(jì)工程師在設(shè)計(jì)早期著手調(diào)試,而采用傳統(tǒng)的方法,設(shè)計(jì)工程師直到硬件設(shè)計(jì)完成才能進(jìn)行除錯(cuò)處理。有些軟件可在沒有硬件支持的情況下完成任務(wù)的編碼,如不涉及到硬件的算法。與硬件相互作用的編碼在獲得硬件之前編寫,但只有在硬件上運(yùn)行后,才能真正對編碼進(jìn)行調(diào)試。通過采用軟硬件聯(lián)合仿真技術(shù),可在設(shè)計(jì)早期開始這一設(shè)計(jì)調(diào)試過程。由于軟件的開發(fā)通常在系統(tǒng)開發(fā)的后段完成,在設(shè)計(jì)周期中較早的開始調(diào)試有可能將使這一項(xiàng)目提早完成,該技術(shù)會(huì)降低首次將硬件和軟件連接在一起時(shí)出現(xiàn)意外而致使項(xiàng)目延期完成所造成的風(fēng)險(xiǎn)。
在取得物理原型前,采用軟硬件聯(lián)合仿真技術(shù)對硬件和軟件之間的接口進(jìn)行驗(yàn)證,將使你不會(huì)花太多的時(shí)間在后期系統(tǒng)調(diào)試上。當(dāng)你確實(shí)拿到物理原型開始在上面跑軟件的時(shí)候,你會(huì)發(fā)現(xiàn)經(jīng)過測試的軟件部分將會(huì)正常工作,這會(huì)節(jié)省項(xiàng)目后期的大量時(shí)間及努力。
軟硬件聯(lián)合仿真系統(tǒng)由一個(gè)硬件執(zhí)行環(huán)境和一個(gè)軟件執(zhí)行環(huán)境組成,通常軟件環(huán)境和硬件環(huán)境都有自己的除錯(cuò)和控制界面,軟件通過一系列由處理器啟動(dòng)的總線周期與硬件的交互作用。本文以一個(gè)Mini Web卡的開發(fā)介紹一種軟硬件聯(lián)合仿真系統(tǒng)。
該方案的核心是采用一個(gè)51單片機(jī)仿真引擎GoldBull ISS51(以下簡稱ISS51),ISS51是51單片機(jī)開發(fā)環(huán)境Keil uVision2的一個(gè)插件,ISS51具有連接Keil和硬件仿真環(huán)境Modelsim的接口,可以實(shí)現(xiàn)軟硬件同步仿真。在該系統(tǒng)中,Keil作為軟件調(diào)試界面,Modelsim作為硬件仿真和調(diào)試界面,ISS51負(fù)責(zé)軟件執(zhí)行、監(jiān)控軟件斷點(diǎn)、單步執(zhí)行、內(nèi)存和寄存器數(shù)據(jù)返回給Keil、CPU總線時(shí)序產(chǎn)生和捕獲、內(nèi)部功能模塊(如定時(shí)器,串口)的運(yùn)行等功能。
Mini Web卡介紹
Mini Web卡是一個(gè)運(yùn)行在單片機(jī)上的Web服務(wù)器,提供網(wǎng)口連接,有大容量文件系統(tǒng),提供TFTP和HTTP服務(wù)。盡管軟件系統(tǒng)比較復(fù)雜,但優(yōu)化編譯后,執(zhí)行代碼還不足25K,為后續(xù)升級留下了足夠空間。
51CPU采用SST89系列,這種CPU具有ISP功能,可以通過RS232串口,直接將目標(biāo)碼下載到CPU。
DMA控制邏輯是一個(gè)可編程邏輯器件,采用的是ALTERA的CPLD EPM240,主要功能是實(shí)現(xiàn)外圍器件之間的DMA傳遞。因?yàn)?1CPU進(jìn)行IO訪問是很低效的,需要24個(gè)時(shí)鐘周期才能進(jìn)行一次IO訪問,在外圍設(shè)備之間轉(zhuǎn)移數(shù)據(jù)則需要更多的時(shí)鐘周期,使用DMA控制邏輯可以達(dá)到3個(gè)時(shí)鐘周期就能轉(zhuǎn)移一個(gè)字節(jié)。本系統(tǒng)中處理多種網(wǎng)絡(luò)協(xié)議,需要大量報(bào)文收發(fā)和文件系統(tǒng)訪問,采用DMA可以極大地提高51單片機(jī)的數(shù)據(jù)處理速度。DMA通道主要有MAC芯片與RAM之間的數(shù)據(jù)塊轉(zhuǎn)移,SMART MEDIA和RAM之間的數(shù)據(jù)塊轉(zhuǎn)移。
網(wǎng)卡芯片采用的是AX88796,主要的優(yōu)點(diǎn)是可以和51CPU方便地接口;支持100M以太網(wǎng),速度高;有較大的接收報(bào)文緩存,能夠平滑網(wǎng)絡(luò)流量,減少因51CPU處理速度慢導(dǎo)致的報(bào)文丟棄和重發(fā)。
SMART MEDIA是一個(gè)移動(dòng)存儲(chǔ)卡,主要用于存儲(chǔ)文件,Mini Web卡支持8M到256M的SMD卡。
文件系統(tǒng)是Mini Web卡的新開發(fā)模塊,文件系統(tǒng)的測試主要通過TFTP來進(jìn)行,為此Mini Web卡上的TFTP服務(wù)程序進(jìn)行了特殊設(shè)計(jì),支持格式化SMART MEDIA,獲取剩余空間,獲取文件名列表,上傳、下載和刪除文件。
軟硬件聯(lián)合仿真的必要性:
Mini Web卡軟件模塊多,軟件開發(fā)風(fēng)險(xiǎn)較大。軟件對硬件的依賴較強(qiáng),F(xiàn)LASH存儲(chǔ)器的訪問驅(qū)動(dòng)、網(wǎng)卡驅(qū)動(dòng)、DMA驅(qū)動(dòng),需要軟硬件協(xié)同調(diào)試。
文件系統(tǒng)的開發(fā),在仿真環(huán)境下更容易和快捷。比如在仿真結(jié)束時(shí),可以將SMART MEDIA仿真模型中的數(shù)據(jù)倒換到磁盤文件中,在仿真開始時(shí),將磁盤文件中的數(shù)據(jù)加載到SMART MEDIA仿真模型中,在定位文件系統(tǒng)的問題時(shí),這一個(gè)功能很有用。
采用軟硬件聯(lián)合仿真,便于系統(tǒng)前期設(shè)計(jì)。51單片機(jī)的外部RAM訪問效率較低,內(nèi)存拷貝、外部器件之間的數(shù)據(jù)塊轉(zhuǎn)移很浪費(fèi)時(shí)間。將大量數(shù)據(jù)的拷貝操作或數(shù)據(jù)塊校驗(yàn)、比較操作在CPLD內(nèi)實(shí)現(xiàn),可以大大改進(jìn)51單片機(jī)處理數(shù)據(jù)的能力。通過軟硬件聯(lián)合仿真,可以評估CPLD處理數(shù)據(jù)對性能的改進(jìn)。
Mini Web卡軟硬件聯(lián)合仿真系統(tǒng):
軟硬件聯(lián)合仿真主要解決的問題是系統(tǒng)功能設(shè)計(jì)與驗(yàn)證
【單片機(jī)軟硬件聯(lián)合仿真解決方案】相關(guān)文章:
聯(lián)合教育實(shí)驗(yàn)中校校聯(lián)合新模式研究論文12-02
一種基于ISS的軟硬件協(xié)同驗(yàn)證環(huán)境03-07
單片機(jī)的參考文獻(xiàn)05-27
論聯(lián)合庫存控制12-08
MultiMediacard及其與單片機(jī)接口03-20
AVR單片機(jī)GCC編程03-18
基于單片機(jī)技術(shù)的波形發(fā)生器采用單片機(jī)設(shè)計(jì)(一)03-07
ABC對輸入MV文件的解決方案11-20