新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM920T設計的SMC接口研究與PC/104總線仿真

        基于ARM920T設計的SMC接口研究與PC/104總線仿真

        作者: 時間:2010-12-13 來源:網絡 收藏

        地址及訪問控制信號均由CPU驅動,外部設備始終處于被動接收狀態,正確設定數據流向即可.

        數據信號是時分雙向傳輸的,為遍免出現沖突,必須保證除非CPU 透過該收發器對外設進行讀訪問,否則收發器的CPU 側應始終處于高阻狀態.為此,16T245等具有輸出使能端的器件只需使輸出無效即可,而對于無使能端的收發器則應使CPU側處于輸入狀態(高阻).

        確認CPU 已向兼容PC/104總線發起讀操作的有效方法是檢查RDn的下降沿是否發生.一旦RDn下降,應立即將收發器置成從外設流向CPU方向,且輸出使能有效,并至少保持至RDn上升沿之后,以保證可靠讀取.

        3.2 端口映射

        的存儲器分組片選信號CSn可作為高位地址線參加這址譯碼.任取CSi和CSj組用于兼容總線,即可分別實現O-0x3FFFFFF的獨立存儲器地址和IO端口地址.可用地址數量已經遠超出XT系統中的1 M(存儲器)和1 K(IO端口).

        在Linux系統中,io.h文件中聲明了函數iore—map(),用于將兼容總線上外部資源的物理地址映射到核心虛地址空間中.iounmap()函數用于取消ioremap()所做的映射.上述操作都應在設備驅動程序中執行.在外部資源成功映射到核心虛地址后,使用指向核心虛地址的指針就可訪問相應設備資源,但顯然這種訪問方式與在X86平臺下差異較大.

        將兼容總線視為一個獨立的字符設備,為其編寫驅動程序,實現對指定偏移地址的讀寫函數,此處的偏移地址即對應PC/104總線中的物理地址 .

        對inb(),outb()等X86平臺下的常見的底層端口操作函數,可用宏替換的方式轉由驅動中的相應讀寫函數實現.

        3.3 總線時序控制

        綜合前文所述,盡管的SRAM 訪問時序非常接近PC/lO4總線,但是要實現高兼容性的PC/lO4,仍有兩方面問題需要解決,一是驅動的SRAM 讀寫速度遠高于PC/104總線,二是為解決電平兼容問題引入的總線收發器,其數據流向和輸出使能需要適當的控制.

        以下VHDL代碼根據SMC輸出的RDn和WRn設置EIOR和EIOW 時序,并適時輸出信號EXIDR,EXOE控制收發器數據流向和輸出使能.

        ECLK是頻率為27 MHz是時鐘脈沖.

        If ECLK’EVENT and ECLK一‘1’then

        if( )then __地址無效

        EXoE 一:1’;

        EXDlR 一‘1’;

        EIOR 一‘1’;

        rdreg 一0;

        else

        if rdreg 1 l then

        rdreg 一rdreg+ 1;

        EXOE 一‘0’;

        else

        rdreg 一0;

        EXDIR 一‘1’;

        EXoE 一‘1’;



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 梧州市| 宣汉县| 丰镇市| 台北县| 新晃| 湘潭市| 岳阳市| 响水县| 攀枝花市| 霞浦县| 富顺县| 彩票| 莱阳市| 集贤县| 饶平县| 凤翔县| 澜沧| 迭部县| 建阳市| 马山县| 永泰县| 安义县| 沛县| 彩票| 曲松县| 枣阳市| 高清| 永城市| 搜索| 延津县| 福建省| 天柱县| 建湖县| 澄江县| 宣城市| 玛曲县| 翁牛特旗| 汉寿县| 镇巴县| 阳城县| 祁门县|