日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]介紹以TMS320F240為核心,設計IDE接口仿零點器的硬件和軟件設計方法。突出特點是硬件設計簡練實用,監(jiān)控軟件精巧靈活。

  摘要:介紹以TMS320F240為核心,設計IDE接口仿零點器的硬件和軟件設計方法。突出特點是硬件設計簡練實用,監(jiān)控軟件精巧靈活。在設計嵌入式系統(tǒng)調(diào)試工具中具有典型性和實用性,對其它系統(tǒng)的調(diào)試也借鑒作用。

    關鍵詞:仿真器 監(jiān)控程序 硬件調(diào)試 IDE接口

隨著航空電子系統(tǒng)數(shù)字化的發(fā)展,機載嵌入式計算機逐步擺脫了“純粹嵌入”時代,開始以主要控制角色而顯露頭腳。其存儲系統(tǒng)也和地面計算機系統(tǒng)一樣,提出了“海量存儲”的要求。借鑒和使用IDE接品時一條重要途徑。但在調(diào)試時一般缺乏IDE接口主方(Host)控制器。PC機雖然帶有兩個標準的集成在主板上的IDE接口,但在目前的Widows系統(tǒng)下卻是透明的,無法在硬件調(diào)試級進行控制驅動。“工欲善其事,必先利其器”。為解決調(diào)試工具,筆者在此前自己動手,設計了一個IDE接口仿真器。硬件極其簡練實用,軟件精巧靈活。介紹出來,與大家切磋。

1 仿真器硬件設計

眾所周知,IDE/ATA接口是16位總線,映像在主機的I/O空間,由主機對接口內(nèi)的2組寄存器操作來完成“海量存儲”。這些寄存器僅由2根片選(CS1FX、CS3FX)和3根地址線(A2、A1、A0)尋址。仿真器硬件只要能在監(jiān)控程序的控制下產(chǎn)生對應控制信號,便能真實地仿真IDE調(diào)試所需的環(huán)境。需要仿真處理的主要信號如表1所列。信號方向以仿真器為參照,輸出(Output)方向由仿真器驅動,輸入(Input)信號由IDE設備驅動。

表1 主要仿真處理的信號

信號名 方  向 有效電平 功    能
HDRST O(輸出) L(低) 復位IDE設備
CS1FX O(輸出) L(低) 第一組寄存器片選
CS3FX O(輸出) L(低) 第二組寄存器片選
A2~A0 O(輸出) 組合值 接口內(nèi)寄存器偏移地址
IOR O(輸出) L(低) 寄存器讀信號
IOW O(輸出) L(低) 寄存器寫信號
D15D0 I/O(雙向) 組合值 數(shù)據(jù)總線,寫時由仿真器驅動,讀時由IDE設備驅動
DRQ I(輸入) H(高) DMA請求
IRQ I(輸入) H(高) 中斷請求

IDE接口的讀寫時序和一般CPU外設時序波形相似,其讀取周期為70ns,具體波形不再給出。使用TI公司的TMS320F240(以下簡稱F240)可以方便地仿真出IDE的時序波形。只要使用外部READY信號,把I/O周期延長到70ns以上,就可以保證仿真數(shù)據(jù)讀寫可靠。以F240為核心,仿真器硬件設計真數(shù)據(jù)讀寫可靠。以F240為核心,仿真器硬件設計就非常簡練。其全部硬件電路如圖1、圖2和圖3所示。除去初期調(diào)試和驅動芯片外,整個核心就是F240和GAL16V8,已經(jīng)仿真全部的IDE時序波形,圖1是仿真器自身調(diào)試仿真監(jiān)控程序時電路。使用2片CY7C199,組成32K×16位的片外RAM程序存儲器空間。當程序調(diào)試完成后,斷開H1,將監(jiān)控程序通過JTAG口直接燒入F240,就可以拔去2片外部程序存儲器CY7C199。

圖1 調(diào)試時的程序存儲器配置

    當仿真監(jiān)控程序調(diào)試完成后,正式定型的仿真核心電路如圖2所示。電路設計總的原則是簡練實用,所以復位采用普通的RC電路,外加手工復位開關SW保證仿真器自身復位;利用RS232和主機之間通信,減少硬件額外開銷;IDE接口的中斷請求HIRQ直接接F240的外部中斷XINT1(因為HIRQ高電平有效,所以將蓁不用的外部斷XINT2等接地,保證蓁中斷源不產(chǎn)生中斷請求,減少軟件中斷響應多重判斷環(huán)節(jié));將F240的PB端口設置為輸出端口,DMA請求HDRQ接到PB端口的最低位PB0,可以直接由硬件檢測DRQ狀態(tài)即可,并不真正需要DMA控制器;將F240的PC端口設置為輸出端品,最高位PC7為復位IDE端口信號,當該位設置為0(低電平)時,產(chǎn)生復位IDE設備信號HDRST,該位設置為1時結束復位。其復位時間可由軟件控制。IDE設備的寄存器映像在F240的I/O空間從0000H開始的16位地址。外部I/O只有IDE接口,不必采用全譯碼,直接由I/O片選IS和地址A3區(qū)分產(chǎn)生CFIFX和CS3FX即可。接口內(nèi)偏移地址直接由A2~A0提供。F240的寫信號WR可以直接作為接口寫信號。但是F240的讀信號是狀態(tài)信號,在連續(xù)讀操作中保持低電平,并無上升沿,所以需要專門產(chǎn)生讀信號。PC主機通過串口和仿真器通信,監(jiān)控仿真器,從而驅動調(diào)試的IDE設備。仿真器和IDE設備通過標準的硬盤電纜連接。為提高信號的抗干擾能力,這些信號經(jīng)過總線驅動器驅動。圖3是驅動和接口電路。

數(shù)據(jù)通路用16路驅動的IDT74LS16245實現(xiàn),開門信號直接由I/O片選信號IS控制,方向端由寫信號WR控制。而單向提供給IDE設備的其它信號,都經(jīng)過54F244驅動。所有控制信號由GAL16V8實現(xiàn)。以下是其控制邏輯代碼,信號名稱和功能可參見圖2。

圖2 核心仿真控制電路

    ……

EQUATIONS

!HRST=!POR#!HRST;//RC上電復位和F240設置復位都產(chǎn)生IDE復位

!CS1FX=!IS&!A3; //A3=0;產(chǎn)生第一組寄存器片選CS1FX=!IS & A3; //A3=1:產(chǎn)生第二組寄存器片選CS3FX

!IOR=!IS & !RD; //*專門產(chǎn)生寄存器讀信號.

[Q1,Q0].CLK=CPUCLK;

[Q1,Q0].OE=!OE;

[Q1,Q0].AR=!POR; //復位

//==============================================

//F240系統(tǒng)控制狀態(tài)機

//時鐘20MHz,每一拍50ns

//程序存儲器CY7C199讀寫周期≤35ns,無需等待

//IDE接口寄存器讀寫周期≥70ns,等待2拍

//===============================================

State_Diagram [Q1,Q0];

State S0: //空閑狀態(tài)

READY=H; //支持CY7C199訪問

if(!IS)then //要訪問IDE接口寄存器

S1 with {READY240=L;}

State S1: //開始等待

READY240=L;

Goto S2;

State S2:

READY240=L;

Goto S3;

State3: //時間到

READY240=H;

Goto S0; //F240對READY信號只采樣一次

END

仿真硬件的核心只有1片F(xiàn)240和1片GAL16V8。

圖3 驅動與接口電路

2 仿真器監(jiān)控軟件設計

軟件設計包括駐留F240的監(jiān)控程序和PC宿主機的監(jiān)控程序,兩者之間通過串口配合工作。這當然降低了IDE接口的數(shù)據(jù)吞吐率,但在邏輯仿真調(diào)試時不是主要焦點。為簡約起見,避免復雜的詞法分析,主從之間采用單字符監(jiān)控命令。其串口監(jiān)控命令通信幀定義如下:

0 1 2…n-2 n-1
幀標志(AAH) 命令字符(Cmd) 參數(shù)項 校驗和CheckSum

其校驗和為前n-1個字節(jié)代數(shù)和的補碼,即

CheckSum=-∑Bi(i=0,1…n-1)

下面介紹幾個主要命令和程序實現(xiàn)方法,其中寄存器名稱和地址可參考圖4界面。

(1)1命令:讀IDE寄存器

當監(jiān)控程序識別出1命令后,根據(jù)參數(shù)提供的寄存器索引,映射為對應的I/O地址。F240的輸入/輸出命令與x86系列不同,它在指令中必須直接給出地址。

LACC Reg

BZ IsDatReg ;0號索引,即讀數(shù)據(jù)寄存器

SUB #1

BZ IsError ;/*號索引,即讀錯誤類型寄存器

BZ IsAltReg ;8號索引,即讀后備狀態(tài)寄存器

SUB #1

BZ IsDrvAddrReg ;9號索引,即讀驅動器地址寄存器

IsDatReg

IN Value,DatReg ;讀數(shù)據(jù)寄存器

RET

IsAltReg:

IN Value,DevAddrReg;讀驅動器地址寄存器

RET

當I命令執(zhí)行完畢后,應該將寄存器讀入值回送PC主機。

(2)0命令:寫IDE寄存器

寄存器輸出命令參數(shù)需要提供寄存器索引和映射為對應的I/O地址。

(3)H命令:硬件復位IDE設備

硬件復位時應將F240的IOPC7引腳設置為低電平10ms以上。

LDP #00E1h ;DP=00E1H:708H~70FFH的頁址

LACL #8000H ;D15=1:IOPC7:作輸出

D7=0;設置IOPC7=0

SACL PCDATDIR ;寫PC端口,設置HRST信號為低電平

CALL Delay 10ms ;保持復位信號10ms的低電平

LACL #8080H ;D15=1:IOPC7:作輸出

;D7=1:設置IOPC7=1

SACL PCDATDIR ;恢復HRST信號為高電平

類似地,監(jiān)測DMA請求HDRQ狀態(tài)時,可以設置端為輸入屬性,然后讀入IOPB0。監(jiān)測中斷請求HIRQ時,可以直接讀XINT1狀態(tài),即讀7070H處的XINT1CR寄存器。

(4)S命令:軟件復位IDE設備

軟件復位時可以向IDE接口的DevCtrlReg(設備控制寄存器)寫入適當值實現(xiàn)。

LDP #0 ;指向.bss變量區(qū)

SPLK=#000EH,Value ;D2=SW Rst=1:軟件強制復位

;D1=/IEn=1:禁止IDE發(fā)中斷

OUT Value,DevCtrlReg ;復位IDE設備

CALL Delay 10ms ;保持復位狀態(tài)10ms

SPLK #000AH,Value ;D2=SW Rst=0:結束復位狀態(tài)

OUT Value,DevCtrlReg

CALL Delay 10ms

SPLK #000EH,Value ;D6=LBA=1:采用邏輯塊尋址模式

OUT Value,DrvHeadReg ;設置驅動器寄存器

(5)C命令:讀取IDE設備ID號和相關配置

IDE設備內(nèi)的相關配置對其它操作影響較大,主機應該掌握這些參數(shù)。諸如柱面數(shù)、磁頭數(shù)、每個磁道的扇區(qū)數(shù)以及最大扇區(qū)號等。這段程序稍微復雜一些。

CALL WaitRDY ;讀狀態(tài)寄存器,等待D6=1,亦即IDE設備完成上次命令

SPLK#000EH,Value

OUT Value,DrvHeadReg ;選擇主從驅動器

SPLK #00ECH,Value

OUT Value,CmdReg ;發(fā)命令,讀取配置參數(shù)

CALL WaitDRQ ;讀狀態(tài)寄存器,等待D6=1并且D3=1,亦即RDY并發(fā)出DRQ請求

MAR *,AR1 ;AR1:當前輔助寄存器

LAR AR1,#BufSADDR ;AR1→扇區(qū)緩沖區(qū)開始地址

RPT #0FFh ;循環(huán)次數(shù)=FFH+1=256

IN *+,DatReg ;讀入配置數(shù)據(jù)

讀出配置參數(shù)后,再把它送給PC機的監(jiān)控程序,從中再細分出具體參數(shù)。

    類似地,讀一個扇區(qū)或寫一個扇區(qū)的命令與這個命令相似。只是在發(fā)命令前應該設置柱面扇區(qū)等寄存器定位到具體的扇區(qū)。

(6)PC宿主機監(jiān)控程序功能

PC宿主機監(jiān)控程序主要通過串口監(jiān)控仿真器。在底層通信中,應該為每一個監(jiān)控命令建立對應函數(shù)。在應用層,可以將幾個簡單命令有機組合,完成復雜功能,減小仿真器駐留監(jiān)控難度。例如,在讀取配置參數(shù)命令中,分解緩沖數(shù)據(jù)。在讀寫扇區(qū)命令中,將LBA邏輯扇區(qū)地址分解成驅動器號、扇區(qū)號、柱面號等。

重要的是為用戶提供一個Windows環(huán)境下特別容易操作的接口界面,貼近硬件調(diào)試,產(chǎn)生所需信號波形,用示波器捕獲分析。圖4是宿主機的一個界面,具體方法細節(jié)不再討論。

結語

隨著航空電子新系統(tǒng)研制的智能化和接口標準化,硬件調(diào)試對仿真設備和環(huán)境要求也越來越高。鑒于成本和上市時間的限制,采用嵌入式CPU研制一些簡單實用的仿真設備,是解決矛盾的一條重要途徑。本文所介紹的IDE接口仿真器硬件簡練、軟件精巧,在多個型號的Flash Disk研制中發(fā)揮了重要作用。

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

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內(nèi)容如下。

關鍵字: 單片機 仿真器

北京亦莊基本形成具身產(chǎn)業(yè)鏈體系 北京2025年8月8日 /美通社/ -- 天工2.0搭載全球首個通用具身智能平臺"慧思開物"從"最能跑"邁向"最好用",全球首...

關鍵字: 智能機器人 4S店 手術機器人 IDE

在當今數(shù)字化時代,汽車不再僅僅是一種交通工具,更是一個移動的智能空間。隨著人們對汽車電子設備依賴程度的不斷提高,車內(nèi) USB 接口的重要性也日益凸顯。從最初單純?yōu)槭謾C充電,到如今支持數(shù)據(jù)傳輸、連接各種智能設備,USB 接...

關鍵字: 接口 數(shù)據(jù)傳輸 汽車供電

根據(jù)Semico Research的預測,到2025年RISC-V芯片出貨量將達到624億顆,覆蓋計算、消費電子和工業(yè)等領域。而在這其中,RISC-V MCU是整個RISC-V生態(tài)的基本盤,以高質(zhì)量、應用驅動的解決方案為...

關鍵字: 青稞 RISC-V 沁恒 接口 MCU

北京——2025年7月17日 亞馬遜云科技在云計算領域樹立了安全、可靠與數(shù)據(jù)隱私標準。如今,亞馬遜云科技將這些原則進一步引入agentic AI領域,發(fā)布一系列全新的能力與工具,幫助客戶在其堅實的技術基礎上構建AI ag...

關鍵字: 生成式AI IDE 服務器

北京 2025年7月16日 /美通社/ -- 亞馬遜云科技日前宣布推出Kiro預覽版,一款專為AI Agent打造的集成開發(fā)環(huán)境(agentic IDE),通過簡化的開發(fā)體驗,幫助開發(fā)者高效實現(xiàn)從概念構想到生產(chǎn)部署的全...

關鍵字: IDE 亞馬遜 原型設計 TI

在C語言開發(fā)領域,工具鏈的選擇直接影響開發(fā)效率與代碼質(zhì)量。隨著開源生態(tài)的成熟,開發(fā)者不再局限于商業(yè)軟件,而是轉向功能強大且靈活的開源工具。本文將聚焦兩類核心工具——集成開發(fā)環(huán)境(IDE)與調(diào)試器,結合技術特性、應用場景與...

關鍵字: C語言 IDE

隨著嵌入式系統(tǒng)開發(fā)的復雜度不斷提升,開發(fā)人員參與的項目隨時可以超越Cortex-M系列,這對集成開發(fā)環(huán)境(IDE)也提出了更高的要求,最好能夠用一套IDE來管理、開發(fā)和保護日益多樣化的工程項目。Keil MDK和IAR...

關鍵字: 嵌入式系統(tǒng) MCU IDE

杭州2025年3月28日 /美通社/ -- 3月27日,由中控技術股份有限公司與內(nèi)蒙古伊泰化工有限責任公司聯(lián)合主辦的"釋放AI效能 共創(chuàng)增長范式——2025中控技術工業(yè)AI共促大會"在鄂爾多斯盛大召開。兩百余位煤化工行業(yè)...

關鍵字: AI 智能化 BSP IDE

是德科技(NYSE: KEYS )宣布推出互連測試系統(tǒng)(ITS),這是一款先進的軟件解決方案,以及運行該軟件的互連與網(wǎng)絡性能測試儀1600GE(INPT-1600GE)硬件流量仿真器。這款一體化解決方案可驗證200GE到...

關鍵字: 自動化 仿真器 數(shù)據(jù)中心
關閉