ISPl362在基于FPGA的紅外成像系統(tǒng)中的應(yīng)用
2.3設(shè)備響應(yīng)請(qǐng)求
當(dāng)芯片工作于設(shè)備控制器模式下時(shí),設(shè)備端的工作就是被動(dòng)的執(zhí)行主機(jī)發(fā)來(lái)的請(qǐng)求。請(qǐng)求類型的確定是通過(guò)讀取out緩沖區(qū)里的setup包來(lái)完成的。一個(gè)setup包(即請(qǐng)求包)有8個(gè)字節(jié),根據(jù)其中第二個(gè)字節(jié)能夠判斷出請(qǐng)求類型。由流程圖可以看出,枚舉過(guò)程中主機(jī)要發(fā)出獲取描述符、設(shè)置地址、設(shè)置配置等請(qǐng)求,對(duì)于獲取描述符的請(qǐng)求,還需要進(jìn)一步判斷是獲取何種描述符的請(qǐng)求,這可以通過(guò)請(qǐng)求的第三,四字節(jié)的值來(lái)確定。一旦確定了請(qǐng)求類型,設(shè)備就可以確定該如何響應(yīng)請(qǐng)求。當(dāng)確定主機(jī)發(fā)的是獲取何種描述符請(qǐng)求之后,固件就將相應(yīng)的描述符的值寫(xiě)入in端點(diǎn)的端點(diǎn)緩沖區(qū)。寫(xiě)in端點(diǎn)緩沖區(qū)的方法與寄存器配置類似,其時(shí)序如圖4所示。本文引用地址:http://m.butianyuan.cn/article/191755.htm
圖4中ISP_A0為高時(shí)對(duì)應(yīng)的ISP_Data(即0001)是寫(xiě)in緩沖區(qū)的命令,ISP_A0為低時(shí)對(duì)應(yīng)的ISP_Data為寫(xiě)入的數(shù)據(jù),其中第一個(gè)數(shù)據(jù)即(0012)為要寫(xiě)入的數(shù)據(jù)的長(zhǎng)度,其余為設(shè)備描述符。當(dāng)需要發(fā)送數(shù)據(jù)時(shí),只需使能in緩沖區(qū)即可。若是設(shè)置地址請(qǐng)求,固件的工作就是將地址值取出來(lái)寫(xiě)入設(shè)備地址寄存器,然后再向主機(jī)發(fā)送一個(gè)空包。
3 LISB固件代碼實(shí)現(xiàn)
在FPGA上用Verilog HDL實(shí)現(xiàn)上述功能時(shí),難點(diǎn)有:一是多驅(qū)動(dòng)問(wèn)題;二是輸入/輸出端口的使用問(wèn)題。由于程序中有多個(gè)模塊同時(shí)作用于ISP1362的控制信號(hào)線以及數(shù)據(jù)線,如果處理不當(dāng),可能會(huì)產(chǎn)生同一時(shí)刻對(duì)同一信號(hào)有兩次或兩次以上的賦值的現(xiàn)象。為了避免這種情況的發(fā)生,就要在適當(dāng)?shù)臅r(shí)刻給信號(hào)線附上高阻,即當(dāng)一個(gè)模塊在驅(qū)動(dòng)某一信號(hào)時(shí),應(yīng)避免其他模塊也在這一時(shí)刻驅(qū)動(dòng)這一信號(hào)。芯片的16位數(shù)據(jù)線為雙向,這可以減少管腳的數(shù)量,節(jié)省資源。但在使用時(shí)若不注意,同樣容易出錯(cuò)。inout管腳在使用時(shí)一般用三態(tài)門(mén)來(lái)實(shí)現(xiàn),當(dāng)inout端口不輸出時(shí),要將三態(tài)門(mén)置高阻。這在具體的軟件實(shí)現(xiàn)中可以使用一個(gè)連續(xù)賦值(Assign)語(yǔ)句來(lái)實(shí)現(xiàn),通過(guò)連續(xù)賦值語(yǔ)句將一個(gè)條件操作符賦值給這個(gè)輸入/輸出變量。該設(shè)計(jì)的代碼中,雙端口用語(yǔ)句ISP_Data=en? data:16’hzzzz實(shí)現(xiàn)其輸入/輸出功能。當(dāng)en信號(hào)為高時(shí),ISP_Data作為輸出信號(hào)使用,其值即為data的值;當(dāng)en信號(hào)為低時(shí),ISP_Data作為輸入信號(hào)使用。因此,程序中就可以根據(jù)需要通過(guò)控制en信號(hào)的高低來(lái)實(shí)現(xiàn)ISP_Data的輸入/輸出使用。
4 結(jié)語(yǔ)
采用高性能的Altera的FPGA中的EP2C70F672C6作為主控器件,實(shí)現(xiàn)了ISP1362在設(shè)備控制器工作模式下的功能,為解決紅外圖像處理系統(tǒng)中的數(shù)據(jù)傳輸問(wèn)題提供了新的途徑。在具體的軟件實(shí)現(xiàn)中,成功地解決了多驅(qū)動(dòng)問(wèn)題和雙向端口的使用問(wèn)題。驗(yàn)證結(jié)果表明,程序的穩(wěn)定性好、可移植性高,并且容易實(shí)現(xiàn)、易于維護(hù)。在成功地進(jìn)行了枚舉的過(guò)程之后,加載上設(shè)備驅(qū)動(dòng)程序即可實(shí)現(xiàn)數(shù)據(jù)向主機(jī)以12 Mb/s的傳輸。
評(píng)論