當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]摘要:ISPl362是飛利浦推出的一款USB可編程控制芯片,其內(nèi)部集成了一個高級主控制器,一個外設(shè)控制器,主機和設(shè)備控制器兼容USB 2.O協(xié)議,支持12 Mb/s的全速傳輸和1.5 Mb/s的低速傳輸;芯片有三種工作模式,即主

摘要:ISPl362是飛利浦推出的一款USB可編程控制芯片,其內(nèi)部集成了一個高級主控制器,一個外設(shè)控制器,主機和設(shè)備控制器兼容USB 2.O協(xié)議,支持12 Mb/s的全速傳輸和1.5 Mb/s的低速傳輸;芯片有三種工作模式,即主機控制器模式、設(shè)備控制器模式和OTG模式。主要針對USB控制芯片ISPl362在基于FPGA紅外成像系統(tǒng)的數(shù)據(jù)采集中的應(yīng)用,利用Verilog HDL語言完成其在設(shè)備控制器模式下的功能,具有很好的可移植性。
關(guān)鍵詞:FPGA;ISP1362;USB接口;固件;Verilog HDL

O 引言
    近年來,紅外熱成像系統(tǒng)已越來越多地應(yīng)用于軍事和工業(yè)上,因此對紅外圖像的研究也成為熱點話題。為適應(yīng)很多實時圖像處理方法的需求,圖像處理系統(tǒng)對圖像數(shù)據(jù)采集的速度及準(zhǔn)確性的要求也越來越高。而傳統(tǒng)的接口,如ISA接口、PCI接口、PS/2接口等都是非共享式接口,不但體積龐大,而且規(guī)格不一。USB接口克服了傳統(tǒng)接口的上述缺陷,具有高速、雙向、低成本以及兼容性好、通用性強等優(yōu)點,已經(jīng)在IT各個領(lǐng)域得到了廣泛的應(yīng)用。與此同時,各種型號的USB接口控制芯片也應(yīng)運而生。ISPl362芯片以其成本低、可靠性高、功耗低以及易于擴展等優(yōu)點,也受到了用戶的廣泛關(guān)注。ISPl362由主機控制器、設(shè)備控制器、OTG控制器、USB收發(fā)器、OTG收發(fā)器和寄存器等組成。其中,OTG控制器主要提供包括監(jiān)控和轉(zhuǎn)換功能在內(nèi)的所有OTG控制,在OTG模式下,既可用作主機,又可用作外設(shè),并支持主機通信協(xié)議(Host Neg-otiayion Protocol,HNP)和對話請求協(xié)議(Ses-sion Request Protocol,SRP)。考慮到以后進一步完善系統(tǒng)的需要,設(shè)計中選用此款芯片來完成USB接口的設(shè)計。該芯片內(nèi)部沒有集成MCU,設(shè)計中采用Altera的現(xiàn)場可編程門陣(Field-Programmabte Gate Arrav,F(xiàn)PGA)中的EP2C70-F672C6來控制芯片的正常運行,操作簡單可靠。EP2C70F672C6具有低功耗、高密度以及低成本等優(yōu)點,可提供4 608~68 416個邏輯單元,包括了多達150個嵌入式18×18位乘法器、專用外部存儲器接口電路,最高操作頻率可達到260 MHz?;谝陨显虻目紤],選用此款FPGA芯片來實現(xiàn)紅外成像系統(tǒng)中的各項功能。

l 紅外成像系統(tǒng)
    紅外成像系統(tǒng)的功能框圖如圖1所示。整個系統(tǒng)功能在FPGA上實現(xiàn)。系統(tǒng)上電后,F(xiàn)PGA進行配置,紅外焦平面探測器在驅(qū)動信號的作用下響應(yīng)紅外目標(biāo)輻射,將輻射信號轉(zhuǎn)變?yōu)槟M電壓信號輸出;A/D轉(zhuǎn)換模塊將模擬電壓信號轉(zhuǎn)變?yōu)閿?shù)字信號,經(jīng)非均勻性校正、盲元處理等過程,將數(shù)據(jù)存入FPGA外部存儲器中。本工作的主要任務(wù)就是把存儲器中的數(shù)據(jù)通過USB接口傳輸?shù)絇C機,以便于根據(jù)需要對數(shù)據(jù)做進一步的處理工作。

2 USB固件結(jié)構(gòu)設(shè)計
    USB固件結(jié)構(gòu)設(shè)計包括枚舉過程和數(shù)據(jù)傳輸過程。數(shù)據(jù)傳輸過程與枚舉過程中的in中斷的處理方法類似。因此這里主要介紹枚舉過程的固件編寫。
    枚舉過程的流程圖如圖2所示。


    枚舉過程就是主機通過向設(shè)備發(fā)送一系列請求來識別設(shè)備的過程。USB一共定義了11種標(biāo)準(zhǔn)USB請求,其中有些請求是必須的。例如,主機必須通過Get Descriptor請求來獲取設(shè)備的設(shè)備描述符、接口描述符和端點描述符等信息,才能識別設(shè)備;必須通過Set Address請求為設(shè)備分配惟一的非零地址,以便于主機識別設(shè)備并與設(shè)備進行數(shù)據(jù)傳輸;必須通過SetConfiguration請求為設(shè)備分配非零的配置值等。USB請求只能使用控制管道來進行傳輸。主機在沒有識別連上的是何種設(shè)備之前,會為未知設(shè)備分配一個默認(rèn)地址O,主機通過0地址與設(shè)備通信,直到主機確定真正有設(shè)備連接了之后,就會為該設(shè)備分配一個惟一的非零地址。在此之后,主機可通過這個非零地址跟設(shè)備通信,包括獲取該設(shè)備的所有配置信息、接口信息以及完成最后的數(shù)據(jù)傳輸?shù)取?br />2.1 芯片初始化
    芯片的初始化主要包括工作模式、速度的選擇以及寄存器的配置等操作。工作模式的選擇可通過設(shè)置ISPl362的第62引腳A1為高電平來實現(xiàn)。這里實現(xiàn)的是全速的數(shù)據(jù)傳輸。下面主要介紹寄存器的配置。
    ISPl362設(shè)備控制器內(nèi)部40多個寄存器。編寫代碼時的重點工作就是根據(jù)寄存器每一位代表的意義確定配置值,特別是有些關(guān)鍵位,只有正確配置方能保證芯片的正常工作。在使用ISPl362之前,要先配置的寄存器有模式寄存器、硬件配置寄存器、中斷使能寄存器等,端點配置寄存器可以在任何時刻完成,但僅在枚舉后的初始化后才有效。為了便于程序設(shè)計,在一開始對模式寄存器、硬件配置寄存器、中斷使能寄存器等配置的同時,也對16個端點配置寄存器進行配置。端點0為控制端點,包括in和out端點,這兩個端點大小固定,均為64 B。枚舉過程就是通過這個端點進行的。其余14個為可編程端點,也可以被配置成雙緩沖端點進一步提高吞吐量。設(shè)計中端點1配置為64 B雙緩沖批量in端點;端點2配置為16 B中斷out端點;端點3配置為16 B中斷in端點等;可以禁能不用的端點。配置模式寄存器時,尤其要注意可以通過第三位來使能所有中斷。對于硬件配置寄存器,要注意中斷輸出管腳INT2的設(shè)置,這里選擇低電平有效的中斷信號模式。對這些寄存器正確配置之后,ISP1362就會進入預(yù)期工作模式。
    由于ISP1362中需要配置的寄存器很多,因此本設(shè)計中先在FPGA生成一片16位,大小為128 B的ROM,再將需要配置的寄存器的寫命令和配置值按照順序?qū)懭隦OM中,配置時,只需將ROM中的數(shù)據(jù)依次寫入芯片中即可。寄存器的配置時序如圖3所示(為便于觀察,圖3中只截取了部分寄存器的配置情況)。


    圖3中信號clk_50M為全局時鐘;ISP_Rst為芯片的復(fù)位信號;ISP_CS,ISP_WR,ISP_RD分別為ISPl362的片選信號、讀信號、寫信號,均為低電平有效;ISP_Al為模式選擇信號,當(dāng)其值為1時,芯片工作于設(shè)備控制器模式,為O時芯片工作于主機控制器模式;ISP_A0為高時對應(yīng)的ISP_Data為DC的初始化命令,當(dāng)ISP_AO為低時對應(yīng)的ISP_Data為寫入相應(yīng)寄存器的配置值。
2.2設(shè)備接收請求
    主機的每次請求,都是將請求以setup包的形式發(fā)送到out端點的out緩沖區(qū)。當(dāng)out緩沖區(qū)接收到數(shù)據(jù)時,芯片的INT2管腳將會有中斷產(chǎn)生。在模式寄存器、硬件配置寄存器、中斷使能寄存器正確配置之后,當(dāng)有中斷事件產(chǎn)生時,ISP1362內(nèi)部的SIE就能夠檢測到中斷,并置中斷寄存器的相應(yīng)位為高電平。固件通過讀取并分析中斷寄存器的值來判斷中斷類型,再進行中斷事件的處理。
    固件首先檢測到的是out中斷。這是因為在上電復(fù)位以后,主機就向out緩沖區(qū)發(fā)第一個setup請求包。當(dāng)接收到out中斷時,固件首先讀取out端點的端點狀態(tài)寄存器將中斷清除,以便于芯片接收其他的中斷。接著固件再根據(jù)端點狀態(tài)寄存器的值判斷out緩沖區(qū)內(nèi)是否含有setup包,然后固件讀取out緩沖區(qū)。
    根據(jù)out緩沖區(qū)的內(nèi)容判斷是何種請求,再決定做何響應(yīng)。in中斷的產(chǎn)生不同于out中斷。in中斷是在in緩沖區(qū)由空變滿之后才產(chǎn)生的,in中斷的產(chǎn)生需要固件進行寫in緩沖區(qū)的操作。換而言之,是寫in緩沖區(qū)的操作引發(fā)了in中斷的產(chǎn)生,而不是in中斷的產(chǎn)生引發(fā)了寫緩沖區(qū)的操作。當(dāng)固件檢測到in中斷時,同樣要通過讀in端點的端點狀態(tài)寄存器將中斷清除。
2.3設(shè)備響應(yīng)請求
    當(dāng)芯片工作于設(shè)備控制器模式下時,設(shè)備端的工作就是被動的執(zhí)行主機發(fā)來的請求。請求類型的確定是通過讀取out緩沖區(qū)里的setup包來完成的。一個setup包(即請求包)有8個字節(jié),根據(jù)其中第二個字節(jié)能夠判斷出請求類型。由流程圖可以看出,枚舉過程中主機要發(fā)出獲取描述符、設(shè)置地址、設(shè)置配置等請求,對于獲取描述符的請求,還需要進一步判斷是獲取何種描述符的請求,這可以通過請求的第三,四字節(jié)的值來確定。一旦確定了請求類型,設(shè)備就可以確定該如何響應(yīng)請求。當(dāng)確定主機發(fā)的是獲取何種描述符請求之后,固件就將相應(yīng)的描述符的值寫入in端點的端點緩沖區(qū)。寫in端點緩沖區(qū)的方法與寄存器配置類似,其時序如圖4所示。


    圖4中ISP_A0為高時對應(yīng)的ISP_Data(即0001)是寫in緩沖區(qū)的命令,ISP_A0為低時對應(yīng)的ISP_Data為寫入的數(shù)據(jù),其中第一個數(shù)據(jù)即(0012)為要寫入的數(shù)據(jù)的長度,其余為設(shè)備描述符。當(dāng)需要發(fā)送數(shù)據(jù)時,只需使能in緩沖區(qū)即可。若是設(shè)置地址請求,固件的工作就是將地址值取出來寫入設(shè)備地址寄存器,然后再向主機發(fā)送一個空包。

3 LISB固件代碼實現(xiàn)
    在FPGA上用Verilog HDL實現(xiàn)上述功能時,難點有:一是多驅(qū)動問題;二是輸入/輸出端口的使用問題。由于程序中有多個模塊同時作用于ISP1362的控制信號線以及數(shù)據(jù)線,如果處理不當(dāng),可能會產(chǎn)生同一時刻對同一信號有兩次或兩次以上的賦值的現(xiàn)象。為了避免這種情況的發(fā)生,就要在適當(dāng)?shù)臅r刻給信號線附上高阻,即當(dāng)一個模塊在驅(qū)動某一信號時,應(yīng)避免其他模塊也在這一時刻驅(qū)動這一信號。芯片的16位數(shù)據(jù)線為雙向,這可以減少管腳的數(shù)量,節(jié)省資源。但在使用時若不注意,同樣容易出錯。inout管腳在使用時一般用三態(tài)門來實現(xiàn),當(dāng)inout端口不輸出時,要將三態(tài)門置高阻。這在具體的軟件實現(xiàn)中可以使用一個連續(xù)賦值(Assign)語句來實現(xiàn),通過連續(xù)賦值語句將一個條件操作符賦值給這個輸入/輸出變量。該設(shè)計的代碼中,雙端口用語句ISP_Data=en? data:16’hzzzz實現(xiàn)其輸入/輸出功能。當(dāng)en信號為高時,ISP_Data作為輸出信號使用,其值即為data的值;當(dāng)en信號為低時,ISP_Data作為輸入信號使用。因此,程序中就可以根據(jù)需要通過控制en信號的高低來實現(xiàn)ISP_Data的輸入/輸出使用。

4 結(jié)語
    采用高性能的Altera的FPGA中的EP2C70F672C6作為主控器件,實現(xiàn)了ISP1362在設(shè)備控制器工作模式下的功能,為解決紅外圖像處理系統(tǒng)中的數(shù)據(jù)傳輸問題提供了新的途徑。在具體的軟件實現(xiàn)中,成功地解決了多驅(qū)動問題和雙向端口的使用問題。驗證結(jié)果表明,程序的穩(wěn)定性好、可移植性高,并且容易實現(xiàn)、易于維護。在成功地進行了枚舉的過程之后,加載上設(shè)備驅(qū)動程序即可實現(xiàn)數(shù)據(jù)向主機以12 Mb/s的傳輸。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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