基于FPGA的機(jī)器人視覺系統(tǒng)模塊的設(shè)計(jì)
視覺技術(shù)是近幾十年來發(fā)展的一門新興技術(shù)。機(jī)器視覺可以代替人類的視覺從事檢驗(yàn)、目標(biāo)跟蹤、機(jī)器人導(dǎo)向等方面的工作,特別是在那些需要重復(fù)、迅速的從圖象中獲取精確信息的場(chǎng)合。盡管在目前硬件和軟件技術(shù)條件下,機(jī)器視覺功能還處于初級(jí)水平,但其潛在的應(yīng)用價(jià)值引起了世界各國(guó)的高度重視,發(fā)達(dá)國(guó)家如美國(guó)、日本、德國(guó)、法國(guó)等都投入了大量的人力物力進(jìn)行研究,近年來已經(jīng)在機(jī)器視覺的某些方面獲得了突破性的進(jìn)展,機(jī)器視覺在車輛安全技術(shù)、自動(dòng)化技術(shù)等應(yīng)用中也越來越顯示出其重要價(jià)值。本文根據(jù)最新的CMOS圖像采集芯片設(shè)計(jì)了一種通用的視覺系統(tǒng)模塊,經(jīng)過編制不同的圖像處理、模式識(shí)別算法程序本模塊可以應(yīng)用到足球機(jī)器人,無人車輛等各種場(chǎng)合。
二、設(shè)計(jì)原理
系統(tǒng)原理框圖如圖1所示。
系統(tǒng)包含5個(gè)主要芯片:圖像采集芯片OV7620,高速微處理器SH4,大規(guī)??删幊剃嚵?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/FPGA">FPGA,和串口通訊控制芯片MAX232。FPGA內(nèi)部編程設(shè)立兩個(gè)雙口RAM,產(chǎn)生圖像傳感器所需的點(diǎn)頻,行場(chǎng)同步等信號(hào),以及控制雙口RAM的存儲(chǔ)時(shí)序。SH4負(fù)責(zé)對(duì)OV7620通過I2C進(jìn)行配置,讀取雙口RAM的圖像數(shù)據(jù),進(jìn)行處理,并通過串口實(shí)現(xiàn)圖像資料的上傳或控制步進(jìn)電機(jī)等其他設(shè)備。
三、圖像采集模塊
系統(tǒng)模塊以CMOS圖像傳感器OV7620為核心,還包括一個(gè)聚光鏡頭和其他一些輔助元器件比如27MHZ的晶振,電阻電容等。
COMS圖像傳感器是近幾年發(fā)展較快的新型圖像傳感器,由于采用了相同COMS技術(shù),因此可以將像素陣列與外圍支持電路集成在同一塊芯片上,是一個(gè)完整的圖像系統(tǒng)(Camera on Chip)。本系統(tǒng)采用的是Ommnvision公司推出的一塊CMOS彩色圖像傳感器OV7620,分辨率為640x480。它能工作在逐行掃描方式下,也能工作在隔行掃描方式下。它不僅能輸出彩色圖像,也可用作黑白圖像傳感器。這塊芯片支持的圖像輸出格式有很多種:1)YCrCb4:2:2 16 bit/8 bit格式;2)ZV端口輸出格式;3)RGB原始數(shù)據(jù)16 bit/8 bit;4)CCIR601/CCIR656格式。其功能包括有對(duì)比度、亮度、飽和度、白平衡及自動(dòng)曝光、同步信號(hào)位置及極性輸出,幀速率和輸出格式等都可以通過I2C 總線進(jìn)行編程配置片內(nèi)寄存器控制。
聚光鏡頭選用桑來斯公司生產(chǎn)的DSL103鏡頭。此鏡頭體積小,適合嵌入式視覺傳感器的應(yīng)用場(chǎng)合。
四、FPGA接口模塊
FPGA采用Xilinx公司的xc2s100,這款芯片內(nèi)部集成了10000個(gè)邏輯門。接口程序采用VHDL(Very High Speed Integrated Circuit Hardware Description Language)書寫。為了提高數(shù)據(jù)的傳輸速率,在xc2s100 內(nèi)部分配了2個(gè)雙口RAM緩沖區(qū),其大小為127KB,每個(gè)雙口RAM存儲(chǔ)1行的圖像數(shù)據(jù)。兩組雙口RAM進(jìn)行奇偶行計(jì)數(shù)器進(jìn)行切換。當(dāng)一行存儲(chǔ)完畢后,立即向SH4傳生一個(gè)讀取該行數(shù)據(jù)的中斷的申請(qǐng)信號(hào)。FPGA內(nèi)部結(jié)構(gòu)如圖2所示。
這里主要問題在于FPGA內(nèi)部的雙口RAM讀寫操作共用同一數(shù)據(jù)總線和地址總線,當(dāng)同時(shí)進(jìn)行讀寫操作的時(shí)候就會(huì)產(chǎn)生時(shí)序問題導(dǎo)致寫入或讀出的數(shù)據(jù)錯(cuò)誤。在這兩個(gè)過程中為了防止數(shù)據(jù)和地址總線沖突,在FPGA內(nèi)部設(shè)計(jì)了一個(gè)中央總線仲裁器。根據(jù)公共數(shù)據(jù)傳輸?shù)南群箜樞?,中央仲裁器先接受圖像傳感器的總線請(qǐng)求,當(dāng)圖像存儲(chǔ)到RAM之中后,中央仲裁器才響應(yīng)單片機(jī)系統(tǒng)的讀信號(hào)請(qǐng)求。
這里給出雙口RAM的構(gòu)造及讀寫控制程序:
Entity dual_port_ram is
Generic(d_width:integer:=2;
Mem_depth:integer:=8);
Port(clk:in STD_LOGIC;
CS:in STD_LOGIC;
We: in STD_LOGIC;
Indata: in STD_LOGIC_VECTOR(7 downto 0);
Outdata:out STD_LOGIC_VECTOR(7 downto 0);
Raddr,waddr:in STD_LOGIC_VECTOR(1 downto 0));
End dual_port_ram ;
Architecture data of dual_port_ram is
Type mem_type is array(3 downto 0) of
STD_LOGIC_VECTOR(7 downto 0);
Signal mem:mem_type;
Begin
Process(clk,we,waddr)
Begin
If(rising_edge(clk))then
If(we='1')then
Mem(conv_integer(waddr))=indata;
End if;
End process;
Process(raddr,clk)
Begin
If(rising_edge(clk))then
If(CS='0')then
Outdata=mem(conv_integer(raddr));
End if;
End if;
End process;
End data;
在MAX Plux II中的波形仿真圖如圖3所示:
五、單片機(jī)模塊
本系統(tǒng)采用SH4芯片作為處理器:SH4單片機(jī)是日立公司推出的一款低功耗、高性能,RISC(精簡(jiǎn)指令集計(jì)算機(jī))結(jié)構(gòu)的全32位單片機(jī)。其處理速度可高達(dá)60M IPS一100MIPS,能在2.25v電壓下工作,功耗僅400MW片內(nèi)集成有32位乘法器、4路5KB CACHE、存取器管理單元MMU和其它一些通用接口及時(shí)鐘電路等。日立公司為SH4系列單片機(jī)提供了c及c++語(yǔ)言集成編譯工具HIM(Hitachi IntegrationManag)。利用它可以將日立C、C++格式的源程序編譯鏈接為匯編程序或目標(biāo)機(jī)器碼.
圖像傳感器芯片OV7620具有靈活的可編程功能,可通過I2C總線對(duì)其進(jìn)行編程來設(shè)置各功能寄存器。由于單片機(jī)沒有內(nèi)部硬件I2C總線接口,所以只有采用軟件模擬的方法實(shí)現(xiàn)I2C總線接口功能。取作為SH4的兩個(gè)I/O引腳作為I2C總線的SCL和SDA總線器件接口,示例程序如下:
unsigned char rdiic (unsigned char addr);讀取數(shù)據(jù)
void iic_init();初始化
void iic_start();起始信號(hào)
void iic_stop ();結(jié)束信號(hào)
void delay4u();延時(shí)
舉例
iic_init();/*初始化總線寄存器*/
rstcamera ();/*復(fù)位OV7620內(nèi)部寄存器*/
wriic (0x11,0x15); /*設(shè)置OV7620內(nèi)部寄存器0x11 的值為0x15*/
delay4ux6();
wriic (0x28,0x60); /*設(shè)置OV7620內(nèi)部寄存器0x28 的值為0x60 */
delay4ux6();
本模塊采用了人類可以識(shí)別的ASCII串口通訊協(xié)議從而可以通過上位機(jī)方便的和人進(jìn)行交互通信。當(dāng)連接到一臺(tái)計(jì)算機(jī)上,本模塊可通過串口上傳整幅原始圖像數(shù)據(jù),用來進(jìn)行系統(tǒng)調(diào)試或更高級(jí)得圖像處理。
六、結(jié)束語(yǔ)
本文采用大規(guī)模集成電路芯片組成了一個(gè)簡(jiǎn)潔,低價(jià)的圖像采集處理系統(tǒng)。本系統(tǒng)經(jīng)過編制不同的圖像處理算法程序可以應(yīng)用在足球機(jī)器人,農(nóng)產(chǎn)品檢查機(jī)器人等不同場(chǎng)合。但其也有些不足,比如SH4處理器,運(yùn)算速度不夠快,只能運(yùn)行一些相對(duì)簡(jiǎn)單的算法,不支持以太網(wǎng)接口等。下一步工作計(jì)劃采用雙CPU結(jié)構(gòu),其中DSP專職處理圖像數(shù)據(jù),ARM負(fù)責(zé)網(wǎng)絡(luò)通信,以及對(duì)機(jī)器人行為的控制等。這樣就可將機(jī)器人的“眼睛”通過以太網(wǎng)連接成一個(gè)復(fù)雜的協(xié)同處理的視覺系統(tǒng),以適應(yīng)更為復(fù)雜的場(chǎng)景的需要。
參考文獻(xiàn)
1、OV7620 single-chip CMOS CIF color digital camera Data Sheet. OmmVision,2001
2、王紅軍。機(jī)器視覺-現(xiàn)代工業(yè)的眼睛。機(jī)電一體化。1999.3
3、鐘玉琢等。 機(jī)器人視覺技術(shù)。 北京:國(guó)防工業(yè)出版社,2002
4、李振玉。圖像通信與監(jiān)控系統(tǒng)。 北京:中國(guó)鐵道出版社,2001
評(píng)論