基于FPGA的工业相机项目大赏1——cmos线阵相机
摘要
本文關(guān)于基于fpga的cmos工業(yè)相機(jī)項(xiàng)目工程概覽與總結(jié),涉及以下內(nèi)容:
1、模塊總結(jié):整體設(shè)計(jì)方案、子模塊劃分、關(guān)鍵技術(shù)點(diǎn)/信號(hào)
2、調(diào)試:關(guān)鍵模塊、信號(hào)的仿真、調(diào)試總結(jié)
3、硬件布局:引腳配置、核心供電等硬件、結(jié)構(gòu)設(shè)計(jì)總結(jié)
4、方案優(yōu)化:現(xiàn)有方案的優(yōu)化、改造及向新方案的靠攏分析
1模塊總結(jié)
1.1概述
●CMOS CL0402 作為圖像傳感芯片,曝光后產(chǎn)生一定格式的圖像數(shù)據(jù);
●FPGA ZYNQ7020 作為主控芯片負(fù)責(zé)cmos驅(qū)動(dòng)控制、圖像像素的采集、cmos寄存器的配置、cameralink協(xié)議的實(shí)現(xiàn)、上位機(jī)串口通信的實(shí)現(xiàn);
●Cameralink端子實(shí)現(xiàn)圖像數(shù)據(jù)的高速串行發(fā)送,將數(shù)據(jù)傳送至采集卡PC端。
系統(tǒng)工作流程如下: FPGA 上電加載配置程序,計(jì)算機(jī)通過異步串口向 FPGA 發(fā)送控制信息,FPGA對(duì)接收的控制信息進(jìn)行分析判斷。通過SPI接口設(shè) 置 CMOS 工 作 模 式,通過判斷的信息產(chǎn)生相機(jī)的驅(qū)動(dòng)時(shí)序,實(shí)現(xiàn)相機(jī)的正常工作。相機(jī)被驅(qū)動(dòng)后,數(shù)字圖像數(shù)據(jù)通過 LVDS 信號(hào)輸 出給主控芯片 FPGA,FPGA 將接收的圖像數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換為 Camera-Link 標(biāo)準(zhǔn)數(shù)據(jù),通過 Camera-Link 接口芯片輸給后端裝有 Camera-Link 采集卡的計(jì)算機(jī),計(jì)算機(jī)對(duì)接收的數(shù)據(jù)進(jìn)行處理、存儲(chǔ)。
圖 1-1 項(xiàng)目工作流程
1.1.1頂層端口
頂層的端口主要包括幾個(gè)部分,分別是cmos觸發(fā)端口、cmos寄存器配置端口、cmos圖像數(shù)據(jù)端口、cameralink端口、串口通信端口
表1-1 頂層模塊端口描述
|
端口名 |
方向/位寬 |
描述 |
|
etgr_in |
I/1bit |
外部觸發(fā)源信號(hào)輸入 |
|
triggle |
O/1bit |
cmos觸發(fā)信號(hào)輸出 |
|
cmos_rstn |
O/1bit |
cmos復(fù)位信號(hào) |
|
cp |
I/4bit |
采集卡輸出的控制信號(hào)p端,作為外觸發(fā)方式之一 |
|
cn |
I/4bit |
采集卡輸出的控制信號(hào)n端,作為外觸發(fā)方式之一 |
|
spi_clk |
O/1bit |
Spi接口時(shí)鐘信號(hào) |
|
spi_in |
O/1bit |
spi寫信號(hào) |
|
spi_cs |
O/1bit |
Spi片選信號(hào),高有效 |
|
spi_out |
I/1bit |
spi讀信號(hào)線 |
|
CMOS_O_Cp |
I/12bit |
Cmos輸出12通道像素?cái)?shù)據(jù)P |
|
CMOS_O_Cn |
I/12bit |
Cmos輸出12通道像素?cái)?shù)據(jù)n |
|
CMOS_p |
I/1bit |
cmos輸出240M像素時(shí)鐘p |
|
CMOS_p |
I/1bit |
cmos輸入240M像素時(shí)鐘p |
|
clkp_in |
O/1bit |
cmos輸入480M參考時(shí)鐘p |
|
clkn_in |
O/1bit |
cmos輸入480M參考時(shí)鐘n |
|
clk_to_pins_p |
O/1bit |
Cameralink輸入時(shí)鐘p(40M) |
|
clk_to_pins_n |
O/1bit |
Cameralink輸入時(shí)鐘n(40M) |
|
data_out_to_pins_p |
O/4bit |
cameralink的4組串行數(shù)據(jù)通道 |
|
data_out_to_pins_p |
O/4bit |
cameralink的4組串行數(shù)據(jù)通道 |
|
sertc_p |
I/1bit |
串口輸入p端,與PC通信 |
|
sertc_n |
I/1bit |
串口輸入n端,與PC通信 |
|
sertfg_p |
O/1bit |
串口輸出p端,與PC通信 |
|
sertfg_n |
O/1bit |
串口輸出n端,與PC通信 |
|
p_e1 |
O/1bit |
Cmos VDD1 上電使能 |
|
p_e2 |
O/1bit |
Cmos VDD2 上電使能 |
|
p_e3 |
O/1bit |
Cmos VDD3 上電使能 |
1.1.2模塊劃分
整個(gè)fpga編程主要?jiǎng)澐譃橐韵聨讉€(gè)部分或模塊:
- cmos 高速串行數(shù)據(jù)采集模塊HSSDP
- Cameralink傳輸模塊 CameraLink_Transmitter
- Cmos寄存器配置模塊Cmos_Config_top
- PC通信模塊Communication
- AXI協(xié)議模塊
- Zynq 系統(tǒng)配置核
將各子模塊分別封裝成獨(dú)立模塊,在頂層中例化使用。
圖 1-3 模塊劃分結(jié)構(gòu)圖
表1-2 子模塊功能描述
|
模塊名 |
功能描述 |
|
HSSDP |
采集圖像數(shù)據(jù),Cmos高速串行數(shù)據(jù)轉(zhuǎn)并行 |
|
CameraLink_Transmitter |
實(shí)現(xiàn)cmeralink協(xié)議,將數(shù)據(jù)送至cmeralink端口 |
|
Cmos_Config_top |
實(shí)現(xiàn)spi讀寫時(shí)序、上電時(shí)序,對(duì)cmos的寄存器進(jìn)行配置 |
|
Communication |
實(shí)現(xiàn)串口讀寫時(shí)序、解析上位機(jī)通信協(xié)議、根據(jù)觸發(fā)模式生成cmos觸發(fā)信號(hào)等。 |
|
design_1_wrapper_i |
Zynq system 配置頂層 |
|
SC30_v1_0_S00_AXI_inst |
AXI 協(xié)議,實(shí)現(xiàn)PS端對(duì)PL端的讀寫 |
?圖 1-4 項(xiàng)目的RTL視圖
1.2主要子模塊介紹
1.2.1 Cmos_Config_top 模塊
主要負(fù)責(zé)寄存器的配置、實(shí)現(xiàn)spi讀寫協(xié)議、實(shí)現(xiàn)上電順序控制。
圖 2-1 Cmos_Config_top端口示意圖
表 2-1 Cmos_Config_top主要端口描述
|
端口名 |
方向/位寬 |
描述 |
|
Read_add |
I/8bit |
Fpga讀cmos寄存器的地址 |
|
Rxbuff |
O/32bit |
Fpga讀出的cmos寄存器數(shù)據(jù)(返回到PS端處理) |
|
spi_out |
I/1bit |
Fpga讀cmos寄存器spi端口 |
|
Rx_en |
I/1bit |
Fpga讀cmos寄存器使能信號(hào) |
|
Write_add |
1/8bit |
Fpga寫cmos寄存器的地址 |
|
Write_data |
I/8bit |
Fpga寫cmos寄存器數(shù)據(jù) |
|
tx_en |
I/1bit |
Fpga寫cmos寄存器使能信號(hào) |
|
spi_in |
O/1bit |
Fpga寫cmos寄存器spi端口 |
|
Spi_bit_rate |
I/6bit |
Spi的比特率 |
|
Spi_cs |
O/1bit |
spi片選信號(hào),高有效 |
|
Spi_clk |
O/1bit |
Spi時(shí)鐘,最大5M |
|
Stream_en |
O/1bit |
寄存器配置完成標(biāo)志信號(hào) |
Cmos配置時(shí)序:
?圖 2-2 Cmos上電時(shí)序圖
圖 2-3 spi寫cmos寄存器時(shí)序
?圖 2-4 spi讀cmos寄存器時(shí)序
1.2.2 HSSDP 模塊
端口描述:
?圖 2-4 HSSDP端口示意圖
表 2-2 HSSDP主要端口描述
|
端口名 |
方向/位寬 |
描述 |
|
CMOS_SLVS_Cn |
I/1bit |
cmos輸出像素采樣時(shí)鐘n端 |
|
CMOS_SLVS_Cp |
I/1bit |
cmos輸出像素采樣時(shí)鐘p端 |
|
CMOS_SLVS_n |
I/12bit |
cmos像素輸出通道n端 |
|
CMOS_SLVS_p |
I/12bit |
cmos像素輸出通道p端 |
|
m_axis_tdata |
O/8bit |
Axis 數(shù)據(jù)線 |
|
m_axis_tkeep |
O/1bit |
字節(jié)有效標(biāo)志。1:數(shù)據(jù)線高8位有效 |
|
m_axis_tlast |
O/1bit |
行結(jié)束標(biāo)志 |
|
m_axis_tuser |
O/1bit |
幀結(jié)束標(biāo)志 |
|
m_axis_tvalid |
O/1bit |
數(shù)據(jù)有效 |
Cmos數(shù)據(jù)格式:?
?圖 2-5 cmos的數(shù)據(jù)讀出格式
FPGA處理:
圖 2-6 HSSDP 模塊處理步驟?
?通過clk和data兩對(duì)差分線進(jìn)行傳輸,由于clk的布線與data的布線存在長短上的差異,主機(jī)傳輸?shù)綇臋C(jī)后clk和data的延時(shí)各不相同。如果我們希望在時(shí)鐘上升沿上采集數(shù)據(jù),但由于線的延時(shí),可能在時(shí)鐘上升沿時(shí)數(shù)據(jù)處于變化狀態(tài),這將會(huì)導(dǎo)致采集的數(shù)據(jù)錯(cuò)誤。通過IDELAYE2原語可將某根信號(hào)線進(jìn)行延時(shí)操作(目前狀態(tài)延時(shí)1092ps),以達(dá)到在時(shí)鐘上升沿?cái)?shù)據(jù)處于穩(wěn)定的操作。如果當(dāng)clk和data信號(hào)延時(shí)較大時(shí),僅僅使用IDELAYE2無法達(dá)到預(yù)期,此時(shí)ISERDESE2就派上用途。
?圖 2-6 xilinx的SelectIO Logic Resources
?當(dāng)ISERDESE2(例化12個(gè))的輸出端口為8位時(shí),由于cmos的像素時(shí)12位的,需要進(jìn)行bit拼接。
?圖 2-7 xilinx的ISERDES2 示意圖
圖 2-8 緩存排序仿真
1.2.3 CameraLink_Transmitter模塊
端口描述:
圖 2-15 communication模塊端口示意圖
表 2-3 communication模塊主要端口描述
|
端口名 |
方向/位寬 |
描述 |
|
cc1、cc2、cc3、cc4 |
I/1bit |
PC端采集卡觸發(fā) |
|
data_width |
I/20bit |
串口位脈寬(表征波特率) |
|
etgr_in |
I/1bit |
外部觸發(fā)信號(hào) |
|
rsterror |
I/1bit |
接收校驗(yàn)錯(cuò)誤后復(fù)位 |
|
rx |
1/1bit |
串口接收 |
|
stream_en |
I/1bit |
cmos配置完后使能觸發(fā)模塊 |
|
tx_port |
O/1bit |
串口發(fā)送 |
|
tex_p0 |
O/1bit |
cmos觸發(fā)信號(hào)(trigger) |
cmos 觸發(fā)時(shí)序:
內(nèi)部觸發(fā)
定義:相機(jī)通過設(shè)備內(nèi)部信號(hào)采集每行圖像,并根據(jù)相關(guān)參數(shù)的設(shè)置輸出每幀圖像。
?圖 2-16 cmos觸發(fā)信號(hào)時(shí)序
●?Trigger signal:fpga內(nèi)部根據(jù)時(shí)序和上位機(jī)參數(shù)要求產(chǎn)生
●?觸發(fā)源:無
●?參數(shù):每幀的行數(shù)、幀/行頻、曝光時(shí)間
相關(guān)參數(shù):
1)每幀行數(shù)
幀觸發(fā)時(shí),用來控制輸出圖像的高度
2)曝光時(shí)間
曝光時(shí)間=T_high+Td1?
?3)行/幀頻
行時(shí)間=T_high+T_low;行頻=1/(T_high+T_low)
幀時(shí)間=Hwidth*行時(shí)間;幀頻=1/幀時(shí)間。
1.2.5 時(shí)鐘部分
時(shí)鐘概述:
圖 2-17 主要時(shí)鐘信號(hào)示意圖
時(shí)鐘說明:
CMOS_SLVS_C_n(p):cmos 輸出的像素采樣時(shí)鐘,240M,為DDR差分對(duì)時(shí)鐘信號(hào)。用于串行像素?cái)?shù)據(jù)信號(hào)的采樣。
Clk_to_pins_n(p):cameralink接口的時(shí)鐘輸入40M
Clkp(n)_in: cmos的驅(qū)動(dòng)時(shí)鐘480M。
HSSDP:將輸入的差分時(shí)鐘轉(zhuǎn)單端,再利用分頻器將其分頻為80M時(shí)鐘,作為ISERDES2的快、慢時(shí)鐘輸入。
Cameralink_Transmitter:?pll1生成兩路時(shí)鐘分別是280M和40M,pll0對(duì)pll1輸出的280M時(shí)鐘進(jìn)行相位調(diào)整。280M和40M分別作為OSERDES2的快。慢時(shí)鐘輸入。
>>>>>>>>end!
這篇博文旨在介紹工業(yè)相機(jī)項(xiàng)目所涉及到的各個(gè)子模塊大致情況,具體設(shè)計(jì)細(xì)節(jié)和技術(shù)要點(diǎn)會(huì)陸續(xù)分章節(jié)發(fā)布,敬請(qǐng)期待!謝謝
總結(jié)
以上是生活随笔為你收集整理的基于FPGA的工业相机项目大赏1——cmos线阵相机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 裁缝师(2011特长生 T2)
- 下一篇: javascript知识点记录(2)