當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]為解決多個(gè)總線設(shè)備共享系統(tǒng)總線時(shí)所帶來(lái)的系統(tǒng)底層資源的分配和再分配問(wèn)題,Microsoft公司在1993年以后相繼公布了即插即用PnP(Plug-and-Play)規(guī)范,包括的總線類型有ISA、EISA、PCMCIA、PCI、VESA及SCSI等。PnP技術(shù)提

為解決多個(gè)總線設(shè)備共享系統(tǒng)總線時(shí)所帶來(lái)的系統(tǒng)底層資源的分配和再分配問(wèn)題,Microsoft公司在1993年以后相繼公布了即插即用PnP(Plug-and-Play)規(guī)范,包括的總線類型有ISA、EISA、PCMCIA、PCI、VESA及SCSI等。PnP技術(shù)提供了對(duì)于底層硬件資源包括I/O端口、IRQ、DMA通道以及內(nèi)存等的智能管理,免除了用戶因安裝新的硬件設(shè)備而帶來(lái)的煩惱。PnP不需要手工改變?cè)O(shè)備的開關(guān)或跳線,給大家?guī)?lái)了好處,但也給在非PC硬件平臺(tái)上的應(yīng)用帶來(lái)了麻煩。原因在于PnP的實(shí)現(xiàn)必須具備兩個(gè)條件:一是PC機(jī)主板要有支持PnP的BIOS;二是要有支持PnP的操作系統(tǒng),如Windows95/98/2000等。當(dāng)脫離了PC機(jī)環(huán)境,這兩個(gè)條件皆不具備,PnP設(shè)備的應(yīng)用受到了極大的限制。比如在DSPISA總線接口系統(tǒng)的設(shè)計(jì)中,一般ISA標(biāo)準(zhǔn)的非PnP設(shè)備有固定的系統(tǒng)資源,通過(guò)跳線或開關(guān)手工設(shè)置完成后,上電即可對(duì)其編程,相應(yīng)的ISA接口卡就會(huì)做出反應(yīng)。而支持PnP的接口卡上面沒有開關(guān)和跳線,板上的資源需要用軟件配置;當(dāng)同時(shí)使用多塊PnP接口卡時(shí),首先還必須進(jìn)行PnP卡的識(shí)別,然后才能對(duì)相應(yīng)的接口卡進(jìn)行資源配置。在筆者以前所從事的科研任務(wù)中,需要DSP與ISA總線的網(wǎng)卡和聲卡進(jìn)行接口設(shè)計(jì),所用的網(wǎng)卡和聲卡都不支持PnP規(guī)范。隨著PnP技術(shù)的發(fā)展和普遍應(yīng)用,如今在市場(chǎng)上很難見到不支持PnP的老ISA卡了,這就給筆者提出了新的問(wèn)題:如何在非PC硬件環(huán)境下使用PnP設(shè)備?本文以PnP網(wǎng)卡和聲卡為例,通過(guò)分析ISA總線PnP卡與微機(jī)的軟、硬件接口電路,用DSP芯片TMS320F206結(jié)合外圍電路模擬ISA時(shí)序,實(shí)現(xiàn)了DSP對(duì)PnP卡的自動(dòng)識(shí)別與配置,從而使ISA總線PnP卡在非PC環(huán)境下的應(yīng)用變成現(xiàn)實(shí)。

1 ISA總線PnP協(xié)議簡(jiǎn)介[1]

  PnP邏輯必須在上電后經(jīng)軟件使能才起作用。使能的過(guò)程是將一個(gè)預(yù)先定義好的序列(32次I/O寫)寫入地址端口,地址端口的地址為279H,預(yù)先定義好的序列就稱為PnP初始化關(guān)鍵字。這32個(gè)字節(jié)為:

  6A,B5,DA,ED,F6,FB,7D,BE,DF,6F,37,1B,0D,86,C3,61,B0,58,2C,16,8B,45,A2,D1,E8,74, A,9D,CE,E7,73,39

  當(dāng)PnP卡檢測(cè)到上述32字節(jié)的初始化關(guān)鍵字后,所有的PnP卡都進(jìn)入了隔離狀態(tài),等待軟件一個(gè)一個(gè)地去識(shí)別并配置資源。PnP卡能被軟件識(shí)別的關(guān)鍵在于每個(gè)卡都有一個(gè)唯一的序列標(biāo)識(shí)符。該序列標(biāo)識(shí)符由9個(gè)字節(jié)共72位組成,其中前四個(gè)字節(jié)是生產(chǎn)廠家的標(biāo)識(shí),緊接的四個(gè)字節(jié)可以是任何值,只要系統(tǒng)中任意兩塊卡之間的這八個(gè)字節(jié)不完全相同即可。最后的一個(gè)字節(jié)是前八個(gè)字節(jié)的校驗(yàn)和。軟件就是通過(guò)讀取每個(gè)卡的序列標(biāo)識(shí)符來(lái)識(shí)別該P(yáng)nP卡是由哪個(gè)公司生產(chǎn)的并正確調(diào)用該公司提供的驅(qū)動(dòng)程序。序列標(biāo)識(shí)符是按位順序讀出的,圖1示出了序列標(biāo)識(shí)符的構(gòu)成及移位過(guò)程。對(duì)每個(gè)字節(jié),協(xié)議規(guī)定移出的順序是bit[0],bit[1],直到bit[7]。

讀序列標(biāo)識(shí)符的口地址為200H到3FFH之間的任意地址,只要該地址未被其它資源占用。設(shè)置該地址的過(guò)程見本文的第四部分。所有卡的讀地址皆相同,設(shè)將要讀的一塊卡的序列標(biāo)識(shí)符的該位為“1”,而另一塊卡的相應(yīng)位是“0”,如果這兩塊卡都來(lái)驅(qū)動(dòng)數(shù)據(jù)總線,則不可避免地會(huì)產(chǎn)生沖突。PnP卡識(shí)別的關(guān)鍵技術(shù)也就在這里,即PnP上的硬件參與配合了該卡的識(shí)別判斷過(guò)程。每塊卡會(huì)根據(jù)自己序列標(biāo)識(shí)符的每一位對(duì)I/O讀做出相應(yīng)的反應(yīng)。

  如果該卡的序列標(biāo)識(shí)符的當(dāng)前位是“1”,那么該卡就驅(qū)動(dòng)數(shù)據(jù)總線為55H;如果該位是“0”,就驅(qū)動(dòng)數(shù)據(jù)總線為高阻,所有在高阻態(tài)的卡會(huì)去檢查數(shù)據(jù)總線是否有別的卡正在驅(qū)動(dòng)數(shù)據(jù)總線的最低兩位為“01”。第二次I/O讀時(shí),驅(qū)動(dòng)數(shù)據(jù)總線為55H的卡將驅(qū)動(dòng)數(shù)據(jù)總線為AAH,而在高阻態(tài)的卡會(huì)去看是否有別的卡正在驅(qū)動(dòng)數(shù)據(jù)總線的最低兩位為“10”。以上可以看出,每讀一位需要兩次I/O讀。

  在高阻態(tài)的卡如果檢測(cè)到有別的卡在兩次讀周期中有效地驅(qū)動(dòng)了數(shù)據(jù)總線,則它就會(huì)停止參與當(dāng)前的識(shí)別狀態(tài),等在下一輪的識(shí)別過(guò)程中再參加。但是如果該卡沒有檢測(cè)到有別的卡去驅(qū)動(dòng)數(shù)據(jù)總線,則它將繼

續(xù)參加這一輪的識(shí)別,并且利用新移出的一位來(lái)決定本身的響應(yīng)。

  上述移位和判別過(guò)程要進(jìn)行72次,最后有一塊卡保留下來(lái),該卡被指定了一個(gè)句柄,也不再參與下一輪的識(shí)別過(guò)程。同樣,在緊接的一輪識(shí)別過(guò)程中,又有一塊卡被識(shí)別并賦予一個(gè)新的句柄。重復(fù)上述過(guò)程,每塊卡都會(huì)被識(shí)別且擁有一個(gè)相應(yīng)的句柄。

  當(dāng)系統(tǒng)中的所有PnP卡皆被正確識(shí)別后,就可以根據(jù)每個(gè)卡的句柄對(duì)相應(yīng)的卡進(jìn)行資源配置工作了。這部分工作純粹是由PnP資源管理軟件來(lái)完成的。

2 DSP與ISA總線PnP卡的硬件接口技術(shù)

  從前面的敘述可以看出,ISA總線PnP卡與非PnP卡對(duì)是否為PC硬件環(huán)境并不作要求,只需用戶所設(shè)計(jì)的總線符合ISA標(biāo)準(zhǔn)即可。以前針對(duì)非PnP的老ISA卡設(shè)計(jì)的ISA插槽同樣適用于PnP卡,僅在軟件上做相應(yīng)的改動(dòng)即可。

3 DSP對(duì)PnP卡的識(shí)別技術(shù)

  DSP對(duì)PnP卡的識(shí)別過(guò)程與微機(jī)對(duì)PnP卡的識(shí)別過(guò)程是一模一樣的,圖2給出了DSP對(duì)PnP卡的識(shí)別程序流程。[!--empirenews.page--]

表1給出了利用上述方法對(duì)三個(gè)PnP卡的識(shí)別結(jié)果,其中兩塊PnP卡是Accton公司設(shè)計(jì)的10M以太網(wǎng)卡,另一塊是利用Crystal公司的CS4235設(shè)計(jì)的3D聲卡。

 

從表1可清楚看到,由于網(wǎng)卡是同一廠家生產(chǎn)的,故其序列標(biāo)識(shí)符的前四個(gè)字節(jié)相同。同時(shí)根據(jù)DSP對(duì)PnP卡的識(shí)別流程可知,第一輪可識(shí)別出聲卡,第二輪識(shí)別出網(wǎng)卡2,最后識(shí)別出網(wǎng)卡1。

4 DSP對(duì)PnP卡的資源配置

  本文以NE2000兼容網(wǎng)卡為例,通過(guò)對(duì)I/O端口地址的配置來(lái)闡述DSP是如何對(duì)PnP卡進(jìn)行資源配置的。該網(wǎng)卡使用的芯片為Realtek公司生產(chǎn)的RTL8019,芯片中I/O配置寄存器如表2所示。

當(dāng)識(shí)別出該網(wǎng)卡后,就可把該網(wǎng)卡的資源數(shù)據(jù)讀出,下面就是從該P(yáng)nP卡上讀出的有關(guān)I/O端口地址配置的資源:

  TAG  I/O Format

   Item byte                        47H

   I/O information                   00H

   Min.I/O base bits 7-0          20H

   Min.I/O base bits 15-8         02H

   Max.I/O base bits 7-0            80H

   Max.I/O base bits 15-8          03H

   Base alignment                    20H

    Range length                      20H

  從上面的資源數(shù)據(jù)可以看出,該網(wǎng)卡的I/O端口可以配置為220H到380H之間的地址空間,占用的空間范圍為20H,同時(shí)要求該地址的步進(jìn)大小為20H,即只能選擇220H~23FH,240H~25FH等,依此類推?,F(xiàn)假設(shè)要給該網(wǎng)卡配置地址空間為300H~31FH,則只需給I/O配置寄存器60H寫入03H,61H寫入00H即可。對(duì)IRQ、DMA的配置與I/O端口的配置過(guò)程是一樣的。

5 避開PnP協(xié)議“關(guān)鍵字”的接口方法[3]

  從上述PnP卡的識(shí)別與配置過(guò)程可見,如果是在PC機(jī)環(huán)境中,那么這一過(guò)程可自動(dòng)完成;而在用戶所設(shè)計(jì)的系統(tǒng)中,這一過(guò)程就顯得有些煩瑣,且意義不是很大。能不能避開PnP協(xié)議直接對(duì)每塊PnP卡進(jìn)行編程,就象對(duì)老的ISA卡那樣操作呢?實(shí)際上,大多數(shù)芯片確實(shí)提供了這種簡(jiǎn)潔、快速的方法,統(tǒng)稱為“某某公司關(guān)鍵字”接口方法。以前文中所述聲卡為例介紹這種接口方法。下面所給出的五個(gè)步驟完成后,該聲卡就和老的ISA聲卡操作過(guò)程一樣了;唯一的不足是如果系統(tǒng)中使用了兩塊該類型的聲卡,即使它們的序列標(biāo)識(shí)符不同,該方法也失效。[!--empirenews.page--]

  (1)DSP送32字節(jié)“Crystal Key”到地址端口279H,該P(yáng)nP卡就馬上進(jìn)入配置狀態(tài)。這32字節(jié)數(shù)據(jù)為:

  96,35,9A,CD,E6,F3,79,BC,5E,AF,57,2B,15,8A,C5,E2,F1,F8,7C,3E,9F,4F,27,13,09,84,42,A1,D0,68,34,1A;

  (2)DSP送句柄號(hào)到279H;

  (3)DSP直接配置每個(gè)邏輯器件的配置寄存器;

  (4)DSP送79H到279H激活CS4235;

  (5)DSP禁止該P(yáng)nP卡參與將來(lái)的PnP循環(huán)。

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(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ì)開幕式在貴陽(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ā)表演講稱,數(shù)字世界的話語(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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