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