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

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />摘 要:本文介紹了以為核心設(shè)計(jì)IDE接口仿真器的硬件和軟件設(shè)計(jì)方法.突出特點(diǎn)是硬件設(shè)計(jì)簡(jiǎn)練實(shí)用,監(jiān)控軟件精巧靈活,在設(shè)計(jì)嵌入式系統(tǒng)調(diào)試工具中具有典型性和實(shí)用性,對(duì)其它系統(tǒng)的調(diào)試方法也有借鑒。
關(guān)鍵詞:仿真器 監(jiān)控程序 硬件調(diào)試 IDE接口

隨著航空電子系統(tǒng)數(shù)字化的發(fā)展,機(jī)載嵌入式計(jì)算機(jī)也逐步擺脫了"純粹嵌入"時(shí)代,開(kāi)始以主要控制角色而顯露頭腳,其存儲(chǔ)系統(tǒng)也和地面計(jì)算機(jī)系統(tǒng)一樣提出了"海量存儲(chǔ)"的要求.借鑒和使用IDE接口是一條重要途徑。但在調(diào)試時(shí)一般缺乏IDE接口主方(Host)控制器。PC機(jī)雖然帶有兩個(gè)標(biāo)準(zhǔn)的集成在主板上的IDE接口,但在目前的Windows系統(tǒng)下卻是透明的,無(wú)法在硬件調(diào)試級(jí)進(jìn)行控制驅(qū)動(dòng)。"工欲善其事,必先利其器"。為解決調(diào)試工具,筆者設(shè)計(jì)了一個(gè)IDE接口仿真器。硬件簡(jiǎn)練實(shí)用,軟件精巧靈活。

仿真器硬件設(shè)計(jì)
眾所周知,IDE/ATA接口是16Bit總線(xiàn),映象在主機(jī)的I/O空間。由主機(jī)對(duì)接口內(nèi)的2組寄存器操作而完成"海量存儲(chǔ)"。這些寄存器僅由2根片選/CS1FX、/CS3FX和3根地址線(xiàn)(A2A1A0)來(lái)尋址。仿真器硬件只要能在監(jiān)控程序的控制下產(chǎn)生對(duì)應(yīng)控制信號(hào),便能真實(shí)仿真IDE調(diào)試所需的環(huán)境。信號(hào)方向以仿真器為參照,輸出方向由仿真器驅(qū)動(dòng),輸入信號(hào)由IDE設(shè)備驅(qū)動(dòng)。
IDE接口的讀寫(xiě)時(shí)序和一般CPU外設(shè)時(shí)序波形相似,其讀寫(xiě)周期為70ns,具體波形不再給出。使用TI公司的TMS320可以方便地仿真出IDE的時(shí)序波形。只要使用外部READY信號(hào),把I/O周期延長(zhǎng)到70ns以上就可以保證仿真數(shù)據(jù)讀寫(xiě)可靠。以為核心,仿真器硬件設(shè)計(jì)就非常簡(jiǎn)練。除去初期調(diào)試和驅(qū)動(dòng)芯片外,整個(gè)核心就是F240和,能仿真全部的IDE時(shí)序波形。圖1是仿真器自身調(diào)試仿真監(jiān)控程序電路。使用2片,組成32K x 16Bit的片外RAM程序存儲(chǔ)器空間。當(dāng)程序調(diào)試完成后,將H1斷接,將監(jiān)控程序通過(guò)JTAG口直接燒入F240,就可以拔去2片外部程序存儲(chǔ)器。
當(dāng)仿真監(jiān)控程序調(diào)試完成后,正式定型的仿真核心電路如圖2所示。電路設(shè)計(jì)總的原則是簡(jiǎn)練實(shí)用。所以復(fù)位采用普通的RC電路,外加手工復(fù)位SW保證仿真器自身復(fù)位。和主機(jī)之間利用通訊,減少硬件額外開(kāi)銷(xiāo)。IDE接口的中斷請(qǐng)求HIRQ直接F240的外部中斷XINT1。因?yàn)镠IRQ高電平有效,所以將其余不用的外部中斷XINT2等接地,保證其余中斷源不產(chǎn)生中斷請(qǐng)求,減少軟件中斷響應(yīng)多重判斷環(huán)節(jié)。將F240的PB端口設(shè)置為輸出端口,DMA請(qǐng)求HDRQ接到PB端口的最低位PB0,可以直接由硬件檢測(cè)DRQ狀態(tài)即可,并不真正需要DMA控制器。 將F240的PC端口設(shè)置為輸出端口,最高位PC7為復(fù)位IDE端口信號(hào)。當(dāng)該位設(shè)置為0(低電平)時(shí),產(chǎn)生復(fù)位IDE設(shè)備信號(hào)/HDRST,該位設(shè)置為1時(shí)結(jié)束復(fù)位。其復(fù)位時(shí)間可由軟件控制。IDE設(shè)備的寄存器映象在F240的I/O空間從0000H開(kāi)始的16個(gè)地址。外部I/O只有IDE接口,不必采用全譯碼,直接由I/O片選/IS和地址A3區(qū)分產(chǎn)生/CF1FX和/CS3FX。接口內(nèi)偏移地址直接由A2..A0提供。F240的寫(xiě)信號(hào)/WR可以直接作為接口寫(xiě)信號(hào)。但是F240的讀信號(hào)是狀態(tài)信號(hào),在連續(xù)讀操作中保持低電平,并無(wú)上升沿,所以需要專(zhuān)門(mén)產(chǎn)生讀信號(hào)。PC主機(jī)通過(guò)串口和仿真器通訊,監(jiān)控仿真器,從而驅(qū)動(dòng)調(diào)試的IDE設(shè)備。仿真器和IDE設(shè)備通過(guò)標(biāo)準(zhǔn)的硬盤(pán)連接,為提高信號(hào)抗干擾,這些信號(hào)經(jīng)過(guò)總線(xiàn)驅(qū)動(dòng)器驅(qū)動(dòng)。
數(shù)據(jù)通路用16路驅(qū)動(dòng)的IDT74LS16245實(shí)現(xiàn),開(kāi)門(mén)信號(hào)直接由I/O片選信號(hào)/IS控制,方向端由寫(xiě)信號(hào)/WR控制。而單向提供給IDE設(shè)備的其它信號(hào),都經(jīng)過(guò)驅(qū)動(dòng)。所有控制信號(hào)由全部實(shí)現(xiàn),以下是其控制邏輯代碼。
EQUATIONS
!HRST = !POR # !HRST; // RC上電復(fù)位 和 F240設(shè)置復(fù)位都產(chǎn)生 IDE復(fù)位
!CS1FX =!IS &!A3; //A3=0:產(chǎn)生第一組寄存器片選 /CS1FX
!CS3FX =!IS &A3; //A3 =1:產(chǎn)生第二組寄存器片選 /CS3FX
!IOR = !IS & !RD; // 專(zhuān)門(mén)產(chǎn)生寄存器讀信號(hào)
[Q1,Q0].CLK = CPUCLK;
[Q1,Q0].OE = !OE;
[Q1,Q0].AR = !.POR; //復(fù)位
//F240 系統(tǒng)控制狀態(tài)機(jī).
//其時(shí)鐘 ,每一拍50ns
//程序存儲(chǔ)器 讀寫(xiě)周 期 <= ,無(wú)需等待
//IDE接口寄存器讀寫(xiě)周期>= 70ns,等 待2拍足矣.
State_Diagram [Q1,Q0];
State S0: // 空閑狀態(tài).
READY = H; // 支持 CY7C199訪(fǎng)問(wèn).
if (!IS) then // 要訪(fǎng)問(wèn)IDE接口寄存器.
S1 {READY240 = L;}
State S1: // 開(kāi)始等待
READY240 = L;
goto S2;
State S2:
READY240 = L;
goto S3;
State S3: // 時(shí)間到.
READY240 = H;
goto S0; // F240對(duì)READY信號(hào)只采樣一次.
END
仿真硬件的核心只有一片F(xiàn)240和一片而已。
仿真器監(jiān)控軟件設(shè)計(jì)
軟件設(shè)計(jì)包括駐留在F240的監(jiān)控程序和PC宿主機(jī)的監(jiān)控程序。兩者之間通過(guò)串口配合工作。這當(dāng)然降低了IDE接口的數(shù)據(jù)吞吐率,但在邏輯仿真調(diào)試時(shí)不是主要焦點(diǎn)。為簡(jiǎn)約起見(jiàn),避免復(fù)雜的詞法分析,主從之間采用單字符監(jiān)控命令。其串口監(jiān)控命令通訊幀定義如下:
其校驗(yàn)和為前n-1個(gè)字節(jié)代數(shù)和的補(bǔ)碼,即
= -∑Bi (i=0,1.. n-1)
下面介紹幾個(gè)主要命令和程序?qū)崿F(xiàn)方法
1 .I 命令: 讀IDE寄存器
當(dāng)監(jiān)控程序識(shí)別出I命令后,根據(jù)參數(shù)提供的寄存器索引,映射為對(duì)應(yīng)的I/O地址。F240的輸入/輸出命令和x86系列不同,它在指令中必須直接給出地址。
LACC Reg
BZ IsDatReg // 0號(hào)索引,即讀數(shù)據(jù)寄存器
SUB #1
BZ IsError // 1號(hào)索引,即讀錯(cuò)誤類(lèi)型寄存器
BZ IsAltReg // 8號(hào)索引,即讀后備狀態(tài)寄存器
SUB #1
BZ IsDrvAddrReg // 9號(hào)索引,即讀驅(qū)動(dòng)器地址寄存器
IsDatReg
IN ,DatReg // 讀數(shù)據(jù)寄存器
RET
IsAltReg:
IN ,DevAddrReg // 讀驅(qū)動(dòng)器地址寄存器
RET
當(dāng)I命令執(zhí)行完畢,應(yīng)該將寄存器讀入值回送PC主機(jī)。2 .O命令: 寫(xiě)IDE寄存器
寄存器輸出命令參數(shù)需要提供寄存器索引,和映射為對(duì)應(yīng)的I/O地址。3 .H 命令: 硬件復(fù)位IDE設(shè)備
硬件復(fù)位時(shí)應(yīng)將F240的IOPC7管腳設(shè)置為低電平10ms以上。如下
LDP #00E1h ;DP = 00E1H: 7080H-70FFH 的頁(yè)址
LACL #8000H ;D15 = 1: IOPC7: 做輸出.
;D7= 0:設(shè)置IOPC7= 0
PCDATDIR ;寫(xiě)PC端口,設(shè)置/HRST信號(hào)為低電平
Delay10ms ;保持復(fù)位信號(hào)10ms 的低電平
LACL #8080H ;D15= 1: IOPC7: 做輸出.
;D7 = 1:設(shè)置IOPC7 = 1
PCDATDIR ;恢復(fù) /HRST信號(hào)為高電平
類(lèi)似地,監(jiān)測(cè)DMA請(qǐng)求HDRQ狀態(tài)時(shí)可以設(shè)置端口為輸入屬性,然后讀入IOPB0。監(jiān)測(cè)中斷請(qǐng)求HIRQ時(shí),可以直接讀XINT1狀態(tài),即讀 7070H處的XINT1CR寄存器。
4 .S 命令: 軟件復(fù)位IDE設(shè)備
軟件復(fù)位時(shí)可以向IDE接口的DevCtrlReg(設(shè)備控制寄存器)寫(xiě)入適當(dāng)值實(shí)現(xiàn),如下
LDP #0; //指向.bss變量區(qū)
SPLK #000EH,; //D2 = SW Rst = 1:軟件強(qiáng)制復(fù)位
//D1=/IEn=1:禁止IDE發(fā)中斷
OUT Value, DevCtrlReg; //復(fù)位 IDE設(shè)備
Delay10ms; //保持復(fù)位狀態(tài)10ms
SPLK #000AH,Value; //D2= SW Rs= 0 : 結(jié)束復(fù)位狀態(tài)
OUT Value, DevCtrlReg
Delay10ms
SPLK #000EH,Value; //D6=LBA=1:采用邏輯塊尋址模式.
OUT Value,DrvHeadReg; //設(shè)置驅(qū)動(dòng)器寄存器
5 .C 命令: 讀取IDE設(shè)備ID號(hào)和相關(guān)配置
IDE設(shè)備內(nèi)的相關(guān)配置對(duì)其它操作影響較大,主機(jī)應(yīng)該掌握這些參數(shù)。諸如柱面數(shù)、磁頭數(shù)、每個(gè)磁道的扇區(qū)數(shù),以及最大扇區(qū)號(hào)等。
CALL WaitRDY; //讀狀態(tài)寄存器,等待D6 = 1,亦即IDE 設(shè)備完成上次命令
//準(zhǔn)備好再接收新的命令
SPLK #000EH, Value
OUT Value, DrvHeadReg; //選擇主從驅(qū)動(dòng)器
SPLK #00ECH,Value
OUT Value, CmdReg; //發(fā)命令,讀取配置參數(shù)
CALL WaitDRQ; //讀狀態(tài)寄存器,等待D6 = 1并且D3=1
//亦即RDY并發(fā)出DRQ請(qǐng)求,
//表明已將所讀配置參數(shù)放入數(shù)據(jù)寄存 器緩沖
MAR *, AR1; //AR1: 當(dāng)前輔助寄存器.
LAR AR1,#BufSADDR; //AR1 扇區(qū)緩沖區(qū)開(kāi)始地址
RPT #0FFh ; //循環(huán)次數(shù)= FFH + 1 = 256
IN *+, DatReg; //讀入配置數(shù)據(jù).
讀出配置參數(shù)后,再把它送給PC機(jī)的監(jiān)控程序,從中再細(xì)分出具體參數(shù)。讀一個(gè)扇區(qū)或?qū)懸粋€(gè)扇區(qū)的命令和這個(gè)命令相似。只是在發(fā)命令前應(yīng)該設(shè)置柱面扇區(qū)等寄存器,定位到具體的扇區(qū)。
6.PC宿主機(jī)監(jiān)控程序功能
PC宿主機(jī)監(jiān)控程序主要通過(guò)串口監(jiān)控仿真器。在底層通訊中,應(yīng)該為每一個(gè)監(jiān)控命令建立對(duì)應(yīng)函數(shù)。在應(yīng)用層,可以將幾個(gè)簡(jiǎn)單命令有機(jī)組合,完成復(fù)雜功能,減小仿真器駐留監(jiān)控難度。例如,在讀取配置參數(shù)命令中,分解緩沖數(shù)據(jù)。在讀寫(xiě)扇區(qū)命令中,將LBA邏輯扇區(qū)地址分解成驅(qū)動(dòng)器號(hào)、扇區(qū)號(hào)、柱面號(hào)等。
重要的是為用戶(hù)提供一個(gè)Windows環(huán)境下特別容易操作的接口界面,貼近硬件調(diào)試,產(chǎn)生所需信號(hào)波形,用捕獲分析。
結(jié)束語(yǔ)
隨著航空電子新系統(tǒng)研制的智能化和接口標(biāo)準(zhǔn)化,硬件調(diào)試對(duì)仿真設(shè)備和環(huán)境要求也越來(lái)越高。鑒于成本和上市時(shí)間的限制,采用嵌入式CPU自己研制一些簡(jiǎn)單實(shí)用的仿真設(shè)備是解決矛盾的一條重要的途徑。本文所介紹的IDE接口仿真器在多個(gè)型號(hào)的 研制中發(fā)揮了重要作用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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