www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于CPLD的計算機并口EPP模式通訊實現(xiàn)

前言

計算機的并行接口一開始是作為打印機接口而設(shè)計的。隨著計算機周邊設(shè)備的不斷擴展,人們對提高計算機外設(shè)的數(shù)據(jù)采集速度的要求也越來越高。傳統(tǒng)的異步串行通訊方式雖然具有數(shù)據(jù)傳輸距離較遠的優(yōu)勢,但是由于數(shù)據(jù)傳輸速度慢,會造成傳輸速率的瓶頸問題。所以在一些需要高速數(shù)據(jù)傳輸?shù)膱龊?,使用并行接口一直是一種比較理想的解決方法。

1、并口EPP模式介紹

1.1并行接口的種類

最初的PC機并口由8個單向輸出,5個位輸入和4位雙向(控制)線組成(SPP),如今為了適應(yīng)擴展外圍設(shè)備的需要,并口已經(jīng)發(fā)展出了多種工作模式。總共有標(biāo)準(zhǔn)并行接口(SPP)、簡單雙向接口(PS/2)、增強型并行接口(EPP)和擴展功能接口(ECP)模式和多模式接口(ECP+EPP)這幾種。EPP工作模式作為一個提供高性能并口連接的方法,仍與SPP兼容。EPP工作模式的優(yōu)點概括如下:

1)8位數(shù)據(jù)線由原來SPP的單向改成了雙向,簡化了外圍電路的設(shè)計;

2)在一個ISA的周期可以完成一次數(shù)據(jù)的傳輸,大大加快了數(shù)據(jù)傳輸速率;

3)只需要對計算機發(fā)送一條簡單軟件指令,接口硬件就可以自動生成握手聯(lián)絡(luò)信號;

4)接口數(shù)據(jù)線可以分別定義為數(shù)據(jù)和地址,通過綜合使用nAstrb和nDstrb兩條控制線可以快速的實現(xiàn)數(shù)據(jù)向不同的設(shè)備傳輸;

5)相對ECP的工作模式,EPP具有操作簡單、易于實現(xiàn)的特點;

1.2 EPP的硬件接口

EPP接口通常是25芯的D-sub接口,符合IEEE1284標(biāo)準(zhǔn)。其中數(shù)據(jù)選通和地址選通信號為低電平有效, 且兩者不可能同時為低, 等待信號(nWait) 為握手信號,主要是考慮PC比外設(shè)快, 外設(shè)通過發(fā)送等待信號與PC并口協(xié)調(diào)工作。空閑信號線(Spare)可以由外設(shè)根據(jù)需要來決定其狀態(tài),由PC直接讀取并口狀態(tài)寄存器的相應(yīng)位來獲得Spare的狀態(tài)信息。

1.3 EPP寄存器說明

在PC機中,標(biāo)準(zhǔn)并行接口使用了3個8位的端口寄存器。PC就是通過對這些寄存器,也就是通常所說的數(shù)據(jù)、狀態(tài)、控制寄存器的讀寫訪問并口信號的,這3個寄存器的地址分別是基地址、基地址+1、基地址+2。如今,EPP將在基地址+3到基地址+7的范圍內(nèi),添加5個寄存器。所以EPP一共使用了8個寄存器,表1列出了這些寄存器及其功能。

表1  EPP的8個寄存器及他們的功能

為了能夠在EPP模式下讀寫一個數(shù)據(jù)字節(jié),你需要將數(shù)據(jù)讀取或者寫入EPP數(shù)據(jù)寄存器(基地址+4),而不是讀寫基地址。同樣的,地址的讀寫也是通過讀取或者寫入EPP的地址寄存器(基地址+3)來實現(xiàn)的。EPP的基地址通常是378h和278h。

1.4 EPP工作模式的時序分析

在EPP和ECP模式中,簡單的端口讀寫操作就會自動產(chǎn)生握手聯(lián)絡(luò)信號,這簡化了很多軟件上的設(shè)計。圖1是一個EPP地址寫入周期的時序圖。如圖所示,對EPP數(shù)據(jù)寄存器的寫操作將導(dǎo)致接口啟動一個完整的數(shù)據(jù)寫入周期。接口的硬件把待寫入數(shù)據(jù)置于D0~D7,然后接口自動觸發(fā)握手聯(lián)絡(luò)信號,并檢測外設(shè)的應(yīng)答。讀取一個字節(jié)的過程與此類似。同樣的,對EPP地址寄存器進行讀寫操作將引發(fā)一個完整的數(shù)據(jù)讀寫周期。所以,仔細研究EPP工作狀態(tài)的時序是非常重要的。

圖1 EPP地址寫入周期的時序圖

2、基于WDM的并口驅(qū)動程序的實現(xiàn)

在設(shè)計PC機外圍產(chǎn)品時,不僅需要考慮PC接口定義,與接口相關(guān)的寄存器定義,數(shù)據(jù)傳輸協(xié)議,還要根據(jù)上位機采用的操作系統(tǒng)來編寫合適的通訊程序,以便上位機對數(shù)據(jù)進行管理和監(jiān)控。早期的Windows98以及更低版本的操作系統(tǒng),可以直接訪問并口硬件資源,比如使用C語言中的inp()和outp()函數(shù)來編寫簡單的通訊程序。但Windows2000/XP的操作系統(tǒng)采用了一些保護措施,阻止對端口的直接訪問。這樣做雖然提高了系統(tǒng)運行的可靠性,但也增加了軟件上實現(xiàn)通訊的難度。

2.1 WDM驅(qū)動程序的種類和結(jié)構(gòu)
  
WDM(Win32 Driver Model),即Windows驅(qū)動程序模型,是Microsoft力推的全新驅(qū)動程序模式,可以用來開發(fā)Windows 98和Windows 2000設(shè)備驅(qū)動程序。圖2顯示了在Win2000/XP系統(tǒng)中應(yīng)用程序調(diào)用一個硬件操作的基本過程,從中可以看到WDM在整個驅(qū)動體系結(jié)構(gòu)中的位置何作用。

如圖所示,WDM的驅(qū)動程序是分層的,一般按照層次分為高層、中間和底層三類。顧名思義,高層驅(qū)動程序依賴于中間和底層驅(qū)動程序完成工作,而中間驅(qū)動程序又依賴于底層驅(qū)動程序來完成工作。其中各層驅(qū)動程序的詳細介紹請參閱參考文獻[1]。

圖2 Win2000的驅(qū)動體系結(jié)構(gòu) 

 圖3 并行口EPP模式驅(qū)動程序接口框圖

2.2 并口EPP模式驅(qū)動程序的功能實現(xiàn)

WDM驅(qū)動程序開發(fā)工具通常用NuMega DriverStudio。因為它可以集成到VC++ 開發(fā)環(huán)境中,這樣就可以像生成其他工程一樣生成驅(qū)動程序框架,省去了大量的編寫代碼的時間。

2.3 EPP模式的基本操作
 
首先定義類KIoRange的一個實例,以對應(yīng)EPP
KIoRange   m_ParPortIos;
status = m_ParPortIos.Initialize(
                    0x378,  // LPT1 Bus address
   TRUE,  //InCpuIoSpace
                    8,      // Device size
                    TRUE  // Map to system space
                   );
下面就可以用類KIoRange的成員函數(shù)來訪問EPP的寄存器:
    // EPP的寄存器相對于EPP基址的偏移量
#define CONTROL 2  //對應(yīng)EPP的控制寄存器(37A)
#define ADDRESS 3  //對應(yīng)EPP的地址寄存器(37B)
#define EDATA   4  //對應(yīng)EPP的擴展數(shù)據(jù)寄存器(37C)
//設(shè)置控制寄存器
m_ParPortIos.outb(CONTROL,0x80);
//  EPP讀
m_ParPortIos.outb(ADDRESS,addr); //addr是實際編程中訪問的設(shè)備單元地址
UCHAR  data = m_DeviceIos.inb(EDATA)
//  EPP寫
m_ParPortIos.outb(ADDRESS,addr); //addr是實際編程中訪問的設(shè)備單元地址
            m_DeviceIos.outb(EDATA,data); //data是實際要寫入的數(shù)據(jù)

3、并口EPP模式外圍電路硬件設(shè)計實例

由上文可知,并口EPP模式下的數(shù)據(jù)傳輸速度可以達到µs級,所以使用一般的單片機來控制外設(shè)與EPP的通訊顯然不能滿足高速的要求。早期,工程師使用大量的邏輯分立元件來設(shè)計EPP的外圍電路,但是當(dāng)計算機的主頻越來越高,EPP 模式在高速數(shù)據(jù)傳輸中可靠性明顯下降, 因此本文采用大規(guī)模可編程邏輯器件, 充分利用其高速和大容量特性設(shè)計接口電路, 不僅可大大提高其可靠性, 且易于系統(tǒng)擴展和升級, 可廣泛用于數(shù)據(jù)采集、D/A 轉(zhuǎn)換以及數(shù)字控制。 
筆者采用Xilinx公司的XC95144芯片作為EPP接口模塊的控制單元,并且通過XC95144實現(xiàn)了計算機并口與外部存儲器SRAM的數(shù)據(jù)交換。在某些外設(shè)需要數(shù)據(jù)存儲和與PC機進行數(shù)據(jù)交換的應(yīng)用場合得到了成功的應(yīng)用。該EPP接口模塊的總體框架如圖4所示。

圖4 EPP接口模塊邏輯框圖

如圖4所示,CPLD內(nèi)部由各個負責(zé)不同功能的子模塊組成,其作用與早期的分立元件一樣,所有子模塊用Verilog設(shè)計實現(xiàn),并且通過了仿真驗證。采用ECS將所有的子模塊組織起來,集成在一塊CPLD內(nèi)。這樣做大大提高了整個系統(tǒng)運行的可靠性,同時也為系統(tǒng)擴展其他功能提供條件。

由于SRAM相對DRAM具有存儲速度塊,無需定時刷新,控制信號簡單的優(yōu)點,所以被廣泛的用于需要高速數(shù)據(jù)處理的小型設(shè)備中。圖4中的SRAM采用ISSI的IS61C6416,存儲容量是64K×16位。地址線和數(shù)據(jù)線都是16條,但是EPP每次只能傳送一個字節(jié)的數(shù)據(jù),所以CPLD內(nèi)部需要配置4個8位的數(shù)據(jù)寄存器,分別保存SRAM的地址和數(shù)據(jù)總線上的數(shù)據(jù)。

圖4中的總線74LS245是一個總線收發(fā)器,由nWrite信號控制并口數(shù)據(jù)的傳輸方向。74LS138子模塊是一個3-8譯碼器,通過EPP的地址線向138寫入數(shù)據(jù),使能不同的觸發(fā)信號(CK)來鎖存SRAM的地址或者數(shù)據(jù)總線上的高/低8位數(shù)據(jù)。該模塊的Verilog核心源碼如下:

always@ (q, g)
 if(g==1)
{ ck_al,ck_ah,ck_dl,ck_dh }<=6b111111;
else case(q)
3b000: { ck_al,ck_ah,ck_dl,ck_dh }<=4b1110;
3b001: { ck_al,ck_ah,ck_dl,ck_dh }<=4b1101;
3b010: { ck_al,ck_ah,ck_dl,ck_dh }<=4b1011;
3b011: { ck_al,ck_ah,ck_dl,ck_dh }<=4b0111;
default: { ck_al,ck_ah,ck_dl,ck_dh }<=4b1111;
endcase
由此可知,如果希望向SRAM的地址低8位寫入數(shù)據(jù),PC只需執(zhí)行outp(0x378+3, 0x00),outp(0x378h+4,地址低8位值) 兩條指令,在執(zhí)行后一條指令的同時,ck_al選通信號將并口的數(shù)值鎖存到SRAM地址低8位鎖存器中。在ck_dh信號觸發(fā)的同時將由nWE_cre模塊使能一個nWE信號,將數(shù)據(jù)寫入SRAM。

4、總結(jié)

采用增強型并口(EPP)模式,可以極大地擴展并口通訊的容量和速度。編寫針對并口的WDM驅(qū)動程序,既可以保證系統(tǒng)運行的可靠性,也可以增加驅(qū)動程序的可移植性。使用CPLD設(shè)計并口EPP接口模塊,可以最大限度的體現(xiàn)EPP高速傳輸?shù)奶匦裕矣捎趯⑺械墓δ苣K集成在一塊芯片中,提高了系統(tǒng)的可靠性,特別是XC95144具有的ISP(在線可編程)技術(shù)使復(fù)雜的接口電路可根據(jù)具體的應(yīng)用加以修正,大大增強了接口電路的靈活性和可擴展性。本文設(shè)計的EPP接口模塊已被成功的運用到某款單片機仿真器產(chǎn)品中,實驗證明這種設(shè)計是可行的。

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

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設(shè)計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動的最基本功能。而對于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關(guān)系的思考,同時也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預(yù)告。今年前三季度,公司預(yù)計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀(jì)念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構(gòu)對在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關(guān)鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學(xué)者共同探討了在形勢依然嚴(yán)峻的當(dāng)下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉