當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件


  為提高嵌入式控制軟件(以下簡稱為應(yīng)用軟件)的質(zhì)量和可靠性,研制過程中通常需對應(yīng)用軟件進(jìn)行全面細(xì)致的測評。

  但是基于嵌入式控制器的應(yīng)用軟件測評通常需要構(gòu)建與應(yīng)用系統(tǒng)相當(dāng)或更加復(fù)雜且完備的軟硬件測試環(huán)境,時間和資金的耗費(fèi)不亞于被測系統(tǒng)開發(fā)。采用全軟件測試平臺實(shí)現(xiàn)應(yīng)用軟件測評不失為一種較好的選擇。本文所介紹的80C196單片機(jī)仿真軟件即為旨在構(gòu)建該種測試平臺的基礎(chǔ)技術(shù)之一。

  l仿真軟件需求分析與軟件結(jié)構(gòu)

  仿真軟件作為全軟件測試平臺的主框架,主要利用PC機(jī)上較豐富的資源,在PC機(jī)上實(shí)現(xiàn)應(yīng)用軟件全速全功能仿真80C196單片機(jī)的運(yùn)行,并頂留測試用例生成模塊、軟件模擬的外部激勵等軟件測評信息的插裝接口。

  該仿真軟件可仿真80C196單片機(jī)指令功能、中斷響應(yīng)和外設(shè)接口功能。具有良好的人機(jī)界面,便于控制仿真過程,查看仿真結(jié)果。其系統(tǒng)組成見圖1。

  CPU模塊,主要仿真80C196 CPU芯片和存儲器,執(zhí)行80C196指令系統(tǒng)中的所有指令,支持多種數(shù)據(jù)類型,包括位、字節(jié)、字、雙字、短整形、整形、長整形,以及多種尋址方式,完成中斷處理并控制各種仿真的外設(shè)模塊;編譯模塊,完成源程序的預(yù)處理過程,包括編譯、分析、查錯,將源程序轉(zhuǎn)換成80C196 CPU能識別的指令集,供仿真運(yùn)行使用;程序控制模塊,控制仿真軟件的運(yùn)行,支持中斷點(diǎn)的設(shè)置,完成仿真軟件與用戶的交互;系統(tǒng)信息模塊,顯示當(dāng)前系統(tǒng)信息,監(jiān)視仿真軟件的運(yùn)行情況;結(jié)果信息模塊,查看源程序運(yùn)行結(jié)果,并以形象直觀的方式顯示出來,具有良好的人機(jī)界面。 2仿真軟件設(shè)計(jì)與實(shí)現(xiàn)

  仿真軟件采用VC++面向?qū)ο蠹夹g(shù),將系統(tǒng)中的各個抽象模塊,細(xì)化為各自的類實(shí)例,從而完成規(guī)定的系統(tǒng)功能。仿真軟件中所用到的主要類和關(guān)鍵技術(shù)描述如下

  2.1 存儲器數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

  80C196具有一個邏輯上完全統(tǒng)一的寄存器空間,可尋址范圍為64 kB,其中大部分空間是用戶可以自由使用的空間。為了實(shí)現(xiàn)存儲器的全部功能以及便于程序控制,設(shè)計(jì)了一個包含多種信息的結(jié)構(gòu)作為仿真軟件中的存儲單元,并由這些存儲單元組成了仿真平臺的存儲區(qū),軟件仿真平臺的存儲區(qū)與80C196的存儲空間一一映射。存儲單元結(jié)構(gòu)表示如下:
仿真軟件中的存儲器表示為MyCode m_ramMap[0xffff],實(shí)現(xiàn)了與真實(shí)存儲空間的映射。

  2.2 CPU模塊設(shè)計(jì)

  CPU模塊實(shí)質(zhì)是一個龐大的類實(shí)例,模擬80C196CPU的所有功能,他是整個仿真軟件的核心。CPU類是80C196單片機(jī)中指令執(zhí)行部件,存儲器,IO接口,串行口等硬件部件的軟件實(shí)現(xiàn),完成指令仿真、存儲器管理、中斷管理等功能。能實(shí)現(xiàn)80C196單片機(jī)指令系統(tǒng)中104種指令的功能,并處理6種指令尋址方式,包括立即數(shù)尋址、寄存器直接尋址、間接尋址、自動增量間接尋址、短變址尋址和長變址尋址。

  80C196CPU的所有功能由C196Chip類實(shí)現(xiàn),C196Chip類的結(jié)構(gòu)圖及其類中調(diào)用關(guān)系如圖2所示。

  CMyCPU類為所有類共有,包含存儲器單元,程序狀態(tài)字,CPU時鐘頻率,指令執(zhí)行總的周期數(shù)以及一些其他的CPU信號。CFindAddr 類實(shí)現(xiàn)了指令的六種尋址方式,通過提供統(tǒng)一的接口,實(shí)現(xiàn)不同的尋址方式,使得操作數(shù)的尋址過程變得透明。需要訪問存儲器的指令通過調(diào)用CFindAddr類中的方法完成訪問存儲器的過程,取得訪問數(shù)據(jù),依指令的不同,取得的數(shù)據(jù)類型包括字節(jié)、字、短整型數(shù)、整型數(shù)、雙字和長整型數(shù)。80C196指令系統(tǒng)中有104種指令,依據(jù)功能的不同,劃分為加法指令、減法指令、乘法指令、除法指令、邏輯運(yùn)算指令、數(shù)據(jù)傳送指令、堆棧操作指令、跳轉(zhuǎn)和子程序調(diào)用指令、條件跳轉(zhuǎn)、位邏輯值跳轉(zhuǎn)指令、單寄存器指令、移位指令和特殊控制指令。

  每一類指令作為一個單獨(dú)的模塊設(shè)計(jì)為一個類實(shí)例,完成相應(yīng)指令的解釋執(zhí)行。對于需要修改程序狀態(tài)字的指令,將修改狀態(tài)字的操作作為一個類。CRunCode類封裝所有的操作模塊,仿真80C196單片機(jī)中的指令執(zhí)行部件,完成單步運(yùn)行、一次運(yùn)行和連續(xù)運(yùn)行3種指令的執(zhí)行方式。C196Chip類仿真整個單片機(jī)模塊,除了指令執(zhí)行部件外,還包括各種外設(shè)模塊,完成中斷、串口等功能。對外提供統(tǒng)一的控制接口,完成單片機(jī)的初始化、啟停、訪問存儲器、訪問外設(shè)、訪問特殊功能寄存器。

  CPU模塊中各個類的描述及其繼承關(guān)系如表1所示。

  2.3指令的仿真運(yùn)行

  80C196指令系統(tǒng)中有104種指令,按照操作碼和功能的不同,將指令劃分為13類,每個類模塊實(shí)現(xiàn)1類指令的功能。

  CRunCode類封裝了13類指令的各個模塊,提供了統(tǒng)一的接口,以地址寄存器值作為輸入輸出。進(jìn)入CRuncode-類的為地址寄存器值,根據(jù)此值取得指令,依指令操作碼的不同進(jìn)入各個操作模塊。各個操作模塊完成指令的功能,并計(jì)算出下一條指令的地址值返回給CRunCode-類,CRunCode類再將此值寫入CPU的地址寄存器中。其執(zhí)行過程如圖3所示。

  對于每一條指令的仿真,包括操作過程,操作結(jié)果與程序狀態(tài)字的改變力求做到與80C196指令集相一致。以兩個操作數(shù)的加法指令A(yù)DD Al,BL為例,其實(shí)現(xiàn)過程如下:


  2.4編譯模塊設(shè)計(jì)

  編譯模塊將用戶編寫的源程序編譯成CPU能識別的二進(jìn)制機(jī)器語言的形式。為了降低系統(tǒng)的設(shè)計(jì)難度,采用了已經(jīng)具有的外部程序?qū)υ闯绦蜻M(jìn)行處理。編譯模塊讀取由外部程序生成的列表文件,將程序信息轉(zhuǎn)化為本系統(tǒng)能處理的數(shù)據(jù)結(jié)構(gòu),并將生成的二進(jìn)制操作碼裝入CPU的存儲器。

  2.5程序仿真與控制的實(shí)現(xiàn)

  程序運(yùn)行有3種方式,即單步運(yùn)行,運(yùn)行一次和連續(xù)運(yùn)行。程序的主要控制功能有復(fù)位、設(shè)置/清除中斷點(diǎn)、查看寄存器、查看程序狀態(tài)字等。編譯模塊對源程序進(jìn)行預(yù)處理,將源程序轉(zhuǎn)化為二進(jìn)制操作碼。CPU模塊將操作碼裝入存儲器成功后,初始化CPU的各種信號,并將程序地址寄存器的值置Ox2080,這是80C196匯編程序的起始地址。然后CPU模塊依據(jù)地址寄存器的值取操作碼,按照取址、譯碼、執(zhí)行的過程執(zhí)行每一條指令。在一條指令執(zhí)行完畢后,執(zhí)行中斷處理,刷新顯示結(jié)果以及檢查中斷點(diǎn)等操作。

  本仿真軟件的運(yùn)行流程如圖4所示。

  3軟件運(yùn)行結(jié)果

  本仿真軟件的關(guān)鍵技術(shù)在于CPU模塊的設(shè)計(jì)。這個模塊要完成80C196所有指令的功能,要分配存儲器資源,要控制軟件仿真過程中程序狀態(tài)字、特殊功能寄存器以及其他CPU信號的變化。采用面向?qū)ο缶幊谭椒ê头謱釉O(shè)計(jì)的思路,通過對指令的合理劃分,降低了指令系統(tǒng)的復(fù)雜度,通過對實(shí)際器件的抽象與封裝,實(shí)現(xiàn)了與實(shí)際硬件器件的功能等價,使得仿真結(jié)果與真實(shí)執(zhí)行情況相一致。圖5為仿真軟件實(shí)際運(yùn)行時的截圖。

  至此,該仿真軟件的基本功能已經(jīng)實(shí)現(xiàn),為仿真平臺的設(shè)計(jì)打下了基礎(chǔ),接下來的工作是以仿真軟件為基礎(chǔ),完成仿真平臺的開發(fā)與調(diào)試,主要包括各種外設(shè)的實(shí)現(xiàn),測試用例生成工具以及驅(qū)動測試的外部激勵產(chǎn)生模塊,以此搭建一個具有良好人機(jī)界面的測試環(huán)境,提高應(yīng)用軟件的質(zhì)量與可靠性。按照軟件要求計(jì)劃采用dll文件的方式將各個模塊生成庫文件,并在仿真軟件中預(yù)留各個庫文件的接口,在程序需要時調(diào)用相應(yīng)的庫文件即可,簡化了設(shè)計(jì)的難度,同時增加了仿真平臺的靈活性和通用型。

  4結(jié) 語

  本文提出一種采用VC++面向?qū)ο蠹夹g(shù)設(shè)計(jì)80C196單片機(jī)應(yīng)用軟件仿真環(huán)境的方法。據(jù)此方法研制的仿真軟件可仿真80C196指令集的全部指令,并可對80C196單片機(jī)嵌入式控制軟件進(jìn)行仿真與運(yùn)行。該項(xiàng)技術(shù)為全軟件測試平臺的開發(fā)奠定了基礎(chǔ),也可供相關(guān)領(lǐng)域的應(yīng)用參考。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉