0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析基于51單片機(jī)嵌入式軟件和硬件的同步仿真

ss ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師譚軍 ? 2018-10-11 09:12 ? 次閱讀

本文介紹一種嵌入式系統(tǒng)仿真方法,通過一種特殊設(shè)計(jì)的指令集仿真器ISS將軟件調(diào)試器軟件Keil uVision2和硬件語言仿真器軟件Modelsim連接起來,實(shí)現(xiàn)了軟件和硬件的同步仿真。

縮略詞解釋:

BFM:總線功能模塊。在HDL硬件語言仿真中,BFM完成抽象描述數(shù)據(jù)和具體的時(shí)序信號(hào)之間的轉(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:簡(jiǎn)單文件傳輸協(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)行后,才能真正對(duì)編碼進(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ù)對(duì)硬件和軟件之間的接口進(jìn)行驗(yàn)證,將使你不會(huì)花太多的時(shí)間在后期系統(tǒng)調(diào)試上。當(dāng)你確實(shí)拿到物理原型開始在上面跑軟件的時(shí)候,你會(huì)發(fā)現(xiàn)經(jīng)過測(cè)試的軟件部分將會(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(以下簡(jiǎn)稱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ù)升級(jí)留下了足夠空間。

51CPU采用SST89系列,這種CPU具有ISP功能,可以通過RS232串口,直接將目標(biāo)碼下載到CPU。

DMA控制邏輯是一個(gè)可編程邏輯器件,采用的是ALTERACPLD 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),速度高;有較大的接收?qǐ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)的測(cè)試主要通過TFTP來進(jìn)行,為此Mini Web卡上的TFTP服務(wù)程序進(jìn)行了特殊設(shè)計(jì),支持格式化SMART MEDIA,獲取剩余空間,獲取文件名列表,上傳、下載和刪除文件。

軟硬件聯(lián)合仿真的必要性:

Mini Web卡軟件模塊多,軟件開發(fā)風(fēng)險(xiǎn)較大。軟件對(duì)硬件的依賴較強(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)合仿真,可以評(píng)估CPLD處理數(shù)據(jù)對(duì)性能的改進(jìn)。

Mini Web卡軟硬件聯(lián)合仿真系統(tǒng):

軟硬件聯(lián)合仿真主要解決的問題是系統(tǒng)功能設(shè)計(jì)與驗(yàn)證,它不解決電源、濾波電容、總線電平兼容問題。

做系統(tǒng)仿真,首先要對(duì)硬件系統(tǒng)建模。我們關(guān)注的是系統(tǒng)設(shè)計(jì)的正確性和可執(zhí)行性。

系統(tǒng)中的串口只是用來支持ISP下載軟件,軟件部分沒有對(duì)串口做任何操作,所以系統(tǒng)仿真可以不必考慮。

網(wǎng)卡芯片AX88796,廠商沒有提供仿真模型。它與CPU的接口符合ISA接口標(biāo)準(zhǔn),軟件對(duì)AX88796的操作是根據(jù)NE2000標(biāo)準(zhǔn)網(wǎng)卡芯片設(shè)計(jì)的,由此我們建立了一個(gè)網(wǎng)卡芯片的仿真模型。我們?cè)O(shè)計(jì)了一個(gè)MAC BFM來仿真網(wǎng)卡芯片的ISA接口,NE2000定義的寄存器在C模型中實(shí)現(xiàn),MAC BFM與NE2000寄存器C模型通過PLI接*換數(shù)據(jù)。

SRAM仿真模型是很容易獲取的,很多器件生產(chǎn)商都提供Verilog仿真模型,但器件生產(chǎn)商提供的Verilog仿真模型都包含復(fù)雜的延時(shí)控制代碼,這會(huì)影響仿真速度。根據(jù)經(jīng)驗(yàn),我們可以確保SRAM在單板設(shè)計(jì)中被正確應(yīng)用,不會(huì)產(chǎn)生時(shí)序問題,所以我們可以采用一個(gè)簡(jiǎn)化的SRAM仿真模型,這是我們自己設(shè)計(jì)的,有效代碼只有十幾行。

51CPU BFM 負(fù)責(zé)單片機(jī)管腳時(shí)序的產(chǎn)生和捕獲。51CPU BFM是與ISS51緊密捆綁的,由ISS51安裝程序提供。

SMART MEDIA是三星公司提供的仿真模型,我們使用的也是三星公司的同類型存儲(chǔ)卡。該模型可以用于驗(yàn)證軟件操作SMART MEDIA的正確性和DMA Controller的接口時(shí)序。

DMA Controller是Mini Web卡硬件開發(fā)的一部分,將邏輯設(shè)計(jì)代碼應(yīng)用于仿真,既能檢測(cè)邏輯設(shè)計(jì)的正確性,又能使整個(gè)仿真系統(tǒng)得以正常運(yùn)轉(zhuǎn)。

虛擬網(wǎng)卡

做系統(tǒng)仿真,必須輸入來自真實(shí)世界的激勵(lì),并將仿真系統(tǒng)的輸出傳遞到真實(shí)世界。即便是不能連接到真實(shí)世界,也應(yīng)該提供模擬真實(shí)世界的輸入,并對(duì)仿真系統(tǒng)的輸出進(jìn)行檢測(cè)和分析。

對(duì)于Mini Web卡來說,它和真實(shí)環(huán)境是通過網(wǎng)口連接的。使用虛擬網(wǎng)卡技術(shù),能夠?qū)D3中的MAC C Model與虛擬網(wǎng)卡進(jìn)行通訊。

對(duì)于運(yùn)行在Windows系統(tǒng)上的應(yīng)用程序來說,它并不知道網(wǎng)卡是虛擬的還是真實(shí)的,應(yīng)用程序通過虛擬網(wǎng)卡收發(fā)數(shù)據(jù),事實(shí)上是與仿真系統(tǒng)在進(jìn)行網(wǎng)絡(luò)通信。

這樣就可以使用TFTP向Mini Web卡仿真系統(tǒng)傳遞網(wǎng)頁文件,使用IE瀏覽Mini Web卡仿真系統(tǒng)中的網(wǎng)頁,Mini Web卡的所有功能都能夠被檢驗(yàn)。

使用網(wǎng)絡(luò)臭探器Sniffer可以監(jiān)控虛擬網(wǎng)卡的報(bào)文流,方便協(xié)議調(diào)試。

仿真加速技術(shù)

軟硬件聯(lián)合仿真,影響仿真速度的瓶頸在HDL代碼部分的仿真。如果不設(shè)法提高HDL代碼部分的仿真速度,軟件調(diào)試就非常低效。

提高硬件仿真速度的方法之一是軟件硬件仿真采用事件同步,只在CPU訪問IO時(shí)保持軟件和硬件是同步的。

仿真加速方法之二是硬件仿真系統(tǒng)時(shí)鐘休眠。對(duì)于Mini Web卡來說,只有DMA Controller是受時(shí)鐘控制的,軟件沒有操作DMA Controller的期間,DMA Controller的運(yùn)作是毫無意義的,所以可以在非DMA操作期間,對(duì)時(shí)鐘進(jìn)行休眠;ISS51在每次IO訪問時(shí),給出與上次IO訪問的時(shí)間差,這個(gè)時(shí)間差經(jīng)過處理可以作為時(shí)鐘休眠的時(shí)間段。如果ISS51連續(xù)進(jìn)行IO訪問,就不會(huì)產(chǎn)生時(shí)鐘休眠了。DMA Controller工作于查詢方式,可以采用時(shí)鐘休眠技術(shù),而不會(huì)導(dǎo)致仿真與真實(shí)結(jié)果的不一致。

方法之三是,縮短SMART MEDIA仿真模型中的一些長(zhǎng)延時(shí)的時(shí)間參數(shù)。因?yàn)樵诘却齋MART MEDIA進(jìn)入就緒狀態(tài)時(shí),CPU必須連續(xù)查詢IO,影響仿真速度。我們主要用于軟件功能驗(yàn)證,這種修改也是可以接受的。

方法之四,在軟件設(shè)計(jì)上,謹(jǐn)慎使用外部中斷,因?yàn)橐坏┲袛鄦?dòng),ISS51需要在每個(gè)機(jī)器周期查詢是否有中斷信號(hào),導(dǎo)致軟件仿真和硬件仿真在每個(gè)指令上都進(jìn)行同步,影響仿真速度。如果一定要使用外部中斷,建議用C模型代替Verilog模型,這樣可不影響仿真速度;或者由用戶根據(jù)外部模塊產(chǎn)生外部中斷的時(shí)機(jī),使用ISS51的控制命令,在恰當(dāng)時(shí)刻使能ISS51的中斷模塊。

在一個(gè)普通PC (CPU為AMD速龍1000,SDRM512M 133),運(yùn)行Mini Web卡仿真系統(tǒng),使用PING命令測(cè)試Mini Web卡仿真系統(tǒng)的響應(yīng)速度:

Reply from 10.10.112.76: bytes=32 time=64ms TTL=128

使用IE打開Mini Web卡仿真系統(tǒng)中的網(wǎng)頁文件,感覺和撥號(hào)上網(wǎng)的速度差不太多。創(chuàng)建多個(gè)TFTP連接,同時(shí)向仿真系統(tǒng)傳遞或下載網(wǎng)頁文件,同時(shí)使用IE進(jìn)行網(wǎng)頁瀏覽,都無響應(yīng)中斷現(xiàn)象出現(xiàn)。

總結(jié)

使用軟硬件聯(lián)合仿真,Mini Web卡不需要硬件就能進(jìn)行全部功能的仿真,增強(qiáng)了系統(tǒng)設(shè)計(jì)成功的信心。軟硬件聯(lián)合仿真方便系統(tǒng)設(shè)計(jì)調(diào)整,可以在設(shè)計(jì)前期*估性能,方便軟件和硬件的debug,是一個(gè)值得推廣的技術(shù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6040

    文章

    44592

    瀏覽量

    636901
  • eda
    eda
    +關(guān)注

    關(guān)注

    71

    文章

    2773

    瀏覽量

    173509
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    51單片機(jī)原理及應(yīng)用嵌入式

    進(jìn)入下階段一、單片機(jī)嵌入式系統(tǒng)概述:包括嵌入式系統(tǒng)概念、單片機(jī)的特點(diǎn)、應(yīng)用領(lǐng)域和發(fā)展趨勢(shì)、市場(chǎng)主流單片機(jī)性能比較與選型、常用
    發(fā)表于 12-21 16:51

    嵌入式單片機(jī)

    大家應(yīng)該都知道吧,單片機(jī)的工作模式是利用軟件編程控制硬件,實(shí)現(xiàn)一些功能。嵌入式是在軟件硬件之間
    發(fā)表于 04-24 11:51

    單片機(jī)嵌入式系統(tǒng)的區(qū)別 單片機(jī)嵌入式linux區(qū)別

    ,確定系統(tǒng)的主控器件,并以之為核心搭建系統(tǒng)硬件平臺(tái)?! ?b class='flag-5'>單片機(jī)與嵌入式系統(tǒng)的聯(lián)系  單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器R
    發(fā)表于 03-16 16:22

    到底什么是嵌入式?什么是單片機(jī)

    這些年,有一句話被廣泛傳播,那就是——“軟件為王”。人們普遍認(rèn)為軟件知識(shí)的價(jià)值遠(yuǎn)遠(yuǎn)大于硬件,而學(xué)習(xí)軟件,從事軟件方向,會(huì)更容易找到工作,找到
    發(fā)表于 05-08 10:35

    什么是嵌入式?什么是單片機(jī)

    一句話被廣泛傳播,那就是——“軟件為王”。人們普遍認(rèn)為軟件知識(shí)的價(jià)值遠(yuǎn)遠(yuǎn)大于硬件,而學(xué)習(xí)軟件,從事軟件方向,會(huì)更容易找到工作,找到更高收入、
    發(fā)表于 05-19 14:25

    什么是單片機(jī)嵌入式

    `嵌入式單片機(jī)定義在實(shí)物上可以理解為單片機(jī)開發(fā)板一款單片機(jī)開發(fā)板有硬件電路,有軟件程序的控制可以
    發(fā)表于 04-22 11:42

    嵌入式USB主機(jī)設(shè)計(jì)(硬件設(shè)計(jì)和軟件設(shè)計(jì))

    嵌入式USB主機(jī)設(shè)計(jì)(硬件設(shè)計(jì)和軟件設(shè)計(jì)) 嵌入式USB主機(jī)硬件設(shè)計(jì)選用廉價(jià)的51系列
    發(fā)表于 11-26 13:58 ?1329次閱讀
    <b class='flag-5'>嵌入式</b>USB主機(jī)設(shè)計(jì)(<b class='flag-5'>硬件</b>設(shè)計(jì)和<b class='flag-5'>軟件</b>設(shè)計(jì))

    單片機(jī)原理與嵌入式系統(tǒng)設(shè)計(jì)——原理、應(yīng)用、Protues仿真、實(shí)

    單片機(jī)原理與嵌入式系統(tǒng)設(shè)計(jì)——原理、應(yīng)用、Protues仿真、實(shí)驗(yàn)設(shè)計(jì)[張齊][其他資源]
    發(fā)表于 01-14 22:32 ?23次下載

    什么是嵌入式單片機(jī)?嵌入式單片機(jī)詳情匯總

    嵌入式單片機(jī),即嵌入式微控制器,指以微控制器為核心控制單元的嵌入到對(duì)象體系中的專用計(jì)算機(jī)系統(tǒng),是應(yīng)用十分廣泛的一種嵌入式系統(tǒng)結(jié)構(gòu)。
    發(fā)表于 11-13 09:39 ?6115次閱讀

    單片機(jī)嵌入式的概念

      單片機(jī)嵌入式很多學(xué)者將他們混在一塊,當(dāng)往往被問起單片機(jī)嵌入式有啥區(qū)別的時(shí)候,他們的回答通常是二者都差不多吧。沒有一個(gè)清晰明確的回答。接下來,就讓我們著重談?wù)?/div>
    發(fā)表于 07-10 11:21 ?2446次閱讀

    單片機(jī)嵌入式區(qū)別

    單片機(jī)嵌入式芯片平臺(tái)片上資源價(jià)格應(yīng)用場(chǎng)景不同開發(fā)模式技術(shù)特征芯片平臺(tái)主流單片機(jī)平臺(tái):51、PIC、STM32、AVR、MSP430等主流嵌入式
    發(fā)表于 10-20 14:21 ?4次下載
    <b class='flag-5'>單片機(jī)</b>與<b class='flag-5'>嵌入式</b>區(qū)別

    單片機(jī)or嵌入式linux

    最近很多童鞋投票并咨詢?nèi)绾螐?b class='flag-5'>單片機(jī)轉(zhuǎn)做嵌入式Linux開發(fā)。看來讀者圈中做單片機(jī),RTOS的不少。盡管我目前從事Linux/Android方面的嵌入式開發(fā)工作,但是讀書的時(shí)候也有5年左
    發(fā)表于 11-01 16:26 ?17次下載
    <b class='flag-5'>單片機(jī)</b>or<b class='flag-5'>嵌入式</b>linux

    單片機(jī)嵌入式的區(qū)別

    單片機(jī)嵌入式的區(qū)別平臺(tái)區(qū)別: 主流的單片機(jī)平臺(tái)有51,PIC,STM32,AVR,MSP430, 主流的嵌入式平臺(tái)有ARM,PPC
    發(fā)表于 11-15 12:36 ?15次下載
    <b class='flag-5'>單片機(jī)</b>和<b class='flag-5'>嵌入式</b>的區(qū)別

    1.單片機(jī)嵌入式的關(guān)系(3)

    外圍硬件作為輔助,都是軟件控制硬件。單片機(jī)嵌入式的核心差異CPU的差異:是否有MMU(Memory Management Unit的縮寫,
    發(fā)表于 12-01 15:51 ?16次下載
    1.<b class='flag-5'>單片機(jī)</b>和<b class='flag-5'>嵌入式</b>的關(guān)系(3)

    嵌入式單片機(jī)之間的關(guān)系

    嵌入式系統(tǒng)就是軟硬件共同發(fā)展的一個(gè)結(jié)晶;今天嵌入式系統(tǒng)的發(fā)展,也越來越緊密地跟隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展了。單片機(jī)
    的頭像 發(fā)表于 03-16 09:42 ?1172次閱讀
    <b class='flag-5'>嵌入式</b>與<b class='flag-5'>單片機(jī)</b>之間的關(guān)系