ISPl362在基于FPGA的紅外成像系統(tǒng)中的應(yīng)用
ISPl362設(shè)備控制器內(nèi)部40多個(gè)寄存器。編寫代碼時(shí)的重點(diǎn)工作就是根據(jù)寄存器每一位代表的意義確定配置值,特別是有些關(guān)鍵位,只有正確配置方能保證芯片的正常工作。在使用ISPl362之前,要先配置的寄存器有模式寄存器、硬件配置寄存器、中斷使能寄存器等,端點(diǎn)配置寄存器可以在任何時(shí)刻完成,但僅在枚舉后的初始化后才有效。為了便于程序設(shè)計(jì),在一開(kāi)始對(duì)模式寄存器、硬件配置寄存器、中斷使能寄存器等配置的同時(shí),也對(duì)16個(gè)端點(diǎn)配置寄存器進(jìn)行配置。端點(diǎn)0為控制端點(diǎn),包括in和out端點(diǎn),這兩個(gè)端點(diǎn)大小固定,均為64 B。枚舉過(guò)程就是通過(guò)這個(gè)端點(diǎn)進(jìn)行的。其余14個(gè)為可編程端點(diǎn),也可以被配置成雙緩沖端點(diǎn)進(jìn)一步提高吞吐量。設(shè)計(jì)中端點(diǎn)1配置為64 B雙緩沖批量in端點(diǎn);端點(diǎn)2配置為16 B中斷out端點(diǎn);端點(diǎn)3配置為16 B中斷in端點(diǎn)等;可以禁能不用的端點(diǎn)。配置模式寄存器時(shí),尤其要注意可以通過(guò)第三位來(lái)使能所有中斷。對(duì)于硬件配置寄存器,要注意中斷輸出管腳INT2的設(shè)置,這里選擇低電平有效的中斷信號(hào)模式。對(duì)這些寄存器正確配置之后,ISP1362就會(huì)進(jìn)入預(yù)期工作模式。
由于ISP1362中需要配置的寄存器很多,因此本設(shè)計(jì)中先在FPGA生成一片16位,大小為128 B的ROM,再將需要配置的寄存器的寫命令和配置值按照順序?qū)懭隦OM中,配置時(shí),只需將ROM中的數(shù)據(jù)依次寫入芯片中即可。寄存器的配置時(shí)序如圖3所示(為便于觀察,圖3中只截取了部分寄存器的配置情況)。本文引用地址:http://m.butianyuan.cn/article/191755.htm
圖3中信號(hào)clk_50M為全局時(shí)鐘;ISP_Rst為芯片的復(fù)位信號(hào);ISP_CS,ISP_WR,ISP_RD分別為ISPl362的片選信號(hào)、讀信號(hào)、寫信號(hào),均為低電平有效;ISP_Al為模式選擇信號(hào),當(dāng)其值為1時(shí),芯片工作于設(shè)備控制器模式,為O時(shí)芯片工作于主機(jī)控制器模式;ISP_A0為高時(shí)對(duì)應(yīng)的ISP_Data為DC的初始化命令,當(dāng)ISP_AO為低時(shí)對(duì)應(yīng)的ISP_Data為寫入相應(yīng)寄存器的配置值。
2.2設(shè)備接收請(qǐng)求
主機(jī)的每次請(qǐng)求,都是將請(qǐng)求以setup包的形式發(fā)送到out端點(diǎn)的out緩沖區(qū)。當(dāng)out緩沖區(qū)接收到數(shù)據(jù)時(shí),芯片的INT2管腳將會(huì)有中斷產(chǎn)生。在模式寄存器、硬件配置寄存器、中斷使能寄存器正確配置之后,當(dāng)有中斷事件產(chǎn)生時(shí),ISP1362內(nèi)部的SIE就能夠檢測(cè)到中斷,并置中斷寄存器的相應(yīng)位為高電平。固件通過(guò)讀取并分析中斷寄存器的值來(lái)判斷中斷類型,再進(jìn)行中斷事件的處理。
固件首先檢測(cè)到的是out中斷。這是因?yàn)樵谏想姀?fù)位以后,主機(jī)就向out緩沖區(qū)發(fā)第一個(gè)setup請(qǐng)求包。當(dāng)接收到out中斷時(shí),固件首先讀取out端點(diǎn)的端點(diǎn)狀態(tài)寄存器將中斷清除,以便于芯片接收其他的中斷。接著固件再根據(jù)端點(diǎn)狀態(tài)寄存器的值判斷out緩沖區(qū)內(nèi)是否含有setup包,然后固件讀取out緩沖區(qū)。
根據(jù)out緩沖區(qū)的內(nèi)容判斷是何種請(qǐng)求,再?zèng)Q定做何響應(yīng)。in中斷的產(chǎn)生不同于out中斷。in中斷是在in緩沖區(qū)由空變滿之后才產(chǎn)生的,in中斷的產(chǎn)生需要固件進(jìn)行寫in緩沖區(qū)的操作。換而言之,是寫in緩沖區(qū)的操作引發(fā)了in中斷的產(chǎn)生,而不是in中斷的產(chǎn)生引發(fā)了寫緩沖區(qū)的操作。當(dāng)固件檢測(cè)到in中斷時(shí),同樣要通過(guò)讀in端點(diǎn)的端點(diǎn)狀態(tài)寄存器將中斷清除。
評(píng)論