關鍵詞: CMOS , 控制系統 , 數字攝像機
針對高性能CMOS圖像傳感器的工業數字攝像機的設計與應用,介紹利用高檔微控制器AT89LS8252,設計數字相機內部FPGA邏輯配置與初始化的控制硬件電路和軟件編程。并應用AT89LS8252的SPI(Serial Peripheral Interface)串行外設接口擴展了多通道數模轉換器、DataFlash存儲器、溫度傳感器和MCU的Flash串行模式編程,可以作為多SPI接口外設的典型應用。
隨著CMOS圖像傳感器技術的不斷完善,其性能不斷提高,目前很多機器視覺和數字圖像處理應用中開始使用CMOS圖像傳感器設計數字攝像機,CMOS圖像傳感器具有集成度高,功耗低,數字圖像數據輸出,控制時序簡單等特點。因此本文提出一種利用MCU實現CMOS數字攝像機控制系統硬件電路設計方案。設計中充分考慮到工業相機功能的擴展和相機自身圖像預處理功能的二次開發,所以采用高性能的MCUAT89LS8252來實現攝像機內部FPGA(Field Programmable Gate Array)邏輯配置、在線邏輯下載、攝像機參數下載初始化、溫度讀出等控制功能。
CMOS數字攝像機總體系統描述
CMOS數字攝像機機,一般由:圖像傳感器、時序邏輯產生單元、圖像預處理單元、配置初始化控制單元、圖像數據輸出接口單元五部分組成。下面對各部分簡要介紹:
CMOS圖像傳感器的時序邏輯一般由FPGA產生,由3.3V或5V單電源對系統供電,也有一些高級CMOS圖像傳感器需要外加一組電壓較低的參考模擬電壓,在系統提供的驅動時序下按像素時鐘速率將8bit或10bit的像素數據分單通道和多通道連續輸出。
設計中應用Xilinx公司的高性能的FPGAXC2VP4來完成驅動時序發生和圖像預處理功能。攝像機內部對圖像數據進行預處理,有利于上位機圖像處理算法的簡化,更能夠提高圖像處理的實時性。根據不同機器視覺應用的需要,可以為攝像機提供多種不同圖像預處理方案,如灰度變換、動態范圍擴展、中值濾波等,用戶可以選擇相應的配置文件下載到攝像機中,就能夠實現需要的圖像預處理功能。高級用戶也可以根據自己應用需求,自行開發攝像機內部FPGA圖像預處理的算法,嵌入到FPGA配置邏輯文件中,按照設計中的配置方法下載到攝像機中,就可實現用戶自己開發的圖像預處理功能。數字攝像機圖像數據輸出接口也有很多種方式,可以采用CameraLink接口、以太網接口、USB接口、1394接口等。
文中重點描述攝像機的邏輯配置和初始化控制單元的設計,以AT89LS8252為控制器完成對FPGA的并行配置功能,應用MAX3232串口芯片和上位機通信,完成接收FPGA配置文件和初始化攝像機的參數,并將攝像機內部溫度數據發送給上位機。LT1665產生一組CMOS傳感器需要的8路模擬參考電壓。應用DataFlashAT45DB041B保存FPGA上電配置文件。溫度傳感器MAX6630可獲得攝像機內部的工作溫度數據,對于攝像機工作環境溫度過高的情況,可以向上位機發出報警,并采用制冷措施。攝像機總體結構,見圖1。
圖1 CMOS數字攝像機總體框圖
FPGA并行邏輯配置的MCU實現
設計中應用XilinxFPGAXC2VP4為時序邏輯控制單元和圖像預處理核心,因此每次FPGA上電開始工作前必須將配置文件加載到FPGA內部的SRAM中,這個過程就是FPGA的邏輯配置(FPGAConfiguration)。為實際應用和攝像機圖像處理功能二次開發需要著想,采用并行邏輯配置的方法,可以減少攝像機的配置時間。設計中使用高檔MCUAT89LS8252作為攝像機的控制器,實現RS232串口下載配置文件在電路邏輯配置ICR(In-CircuitReconfigurability)功能。為攝像機的使用者開發攝像機FPGA圖像預處理功能提供了方便的配置方法,從而不用使用FPGA專門的配置芯片和配置電纜,減少了攝像機的端口,提高了攝像機的性能。
AT89LS8252是低功耗、高性能CMOS8位微控制器,內含8KB的Flash程序存儲器可用SPI串行接口總線進行程序下載和2KB的EEPROM,256B的片內RAM,32線可編程I/O,3個定時器,9個中斷源、6個中斷矢量,可編程UART串口,具有低功耗節電方式,可低電壓供電、工作電源范圍2.7~6V,最高工作頻率為12MHz,可編程看門狗定時器WDT,雙數據指針DPTR0和DPTR1,具有斷電標志位POF,SPI外圍器件擴展串行口。設計中選用體積最小的44引腳TQFP貼片封裝AT89LS8252_12AI,工作電壓為3.3V,工作頻率為11.0592MHz。所有器件都使用3.3V單電源供電,采用3.3VCMOS數字電路邏輯電平。單片機的引腳定義和FPGA配置接口電路的實現見圖2。
圖2 MCU接口定義原理圖
XilinxFPGA有5種配置模式,本設計中使用的是被動并行配置模式(Slave SelectMAP Mode),這種模式的優點是在相同的配置時鐘下比其它串行配置模式速度都要快。串行配置方式MCU需要8個機器周期配置一個字節,而并行模式只需要一個機器周期配置一個字節。被動并行配置方式過程:首先系統檢測電源,HSWAP_EN信號把用戶定義I/O引腳上拉,INIT、DONE為低后配置存儲器清空。然后檢測PROG_B是否由低變高,若為高電平再一次清除存儲器。釋放INIT_B,采樣配置模式引腳設置,接下來進行數據并行邏輯配置。AT89LS8252可以把存儲在DataFlashAT45DB041B中的配置文件讀出按照上述配置時序來進行配置。
表1 FPGA配置引腳功能說明
注:信號CS_B、RDWR_B、BUSY、INIT_B、D0-D7在配置結束后復用為A4-A7。
系統初始化和擴展SPI外設器件設計
攝像機啟動邏輯配置成功后,需要對系統進行初始化,也就是對攝像機的一些功能參數寄存器進行設置。根據攝像機工作過程和功能一般有如下一些需要初始化的功能參數:
*攝像機工作模式參數:有FreeRun模式、測試圖像輸出模式,外部觸發模式等。
*傳感器輸出幀頻參數:控制傳感器每秒鐘輸出圖像的幀數。
*傳感器積分時間參數:控制傳感器一幀圖像的曝光時間。
*輸出圖像AOI參數:對傳感器靶面中感興趣區域圖像的輸出,需要設定行和列兩個參數。
*圖像數據輸出位數參數:對于高精度的圖像傳感器,可以選擇8bit,10bit,12bit圖像輸出。
*DigitalShift功能參數:對傳感器像素Nbit的數值進行左移或右移操作后輸出。
*Binning模式輸出參數:有水平Binning,垂直Binning,全幅Binning。Binning就是一種像素合并技術,把相鄰的兩或多個像素值合并成一個像素值,降低了圖像分辨率,但是能夠提高攝像機的感光靈敏度。*參考電壓參數:包括增益電壓參數、偏置電壓參數、自校準電壓參數。雖然CMOS圖像傳感器已經把ADC器件集成到傳感器內部,但是在攝像機不同的工作情況下,還需要改變這些參考電壓,使攝像機輸出用戶滿意的圖像。設計中使用的LT1665可以輸出8路0~3.3V模擬參考電壓。
圖3 SPI串口外設擴展電路原理圖
這些初始化參數的寄存器,一部分是設置在FPGA中,另一部分是外設器件的工作寄存器。但是這些寄存器中的參數,在每次掉電后會自動清空,因此設計中使用AT89LS8252的EEPROM來保存這些參數。參數由RS232串口接收按參數地址存入EEPROM,使用MCU的雙DPTR,DPTR1寫入,DPTR0讀出,使得對EEPROM的讀寫更加便捷。每次參數下載成功或上電后,由初始化程序把EEPROM的參數通過MCU和FPGA之間的數據總線和地址總線寫入參數寄存器,其它外設器件的參數寄存器由SPI總線寫入。
因為FPGA信號CS_B、RDWR_B、BUSY、INIT_B、D0-D7在邏輯配置結束后可作為普通用戶定義I/O,所以在配置結束后這些引腳被定義為MCU和FPGA初始化的數據總線(P0口)和地址總線(P2口)。
SPI(SerialPeripheralInterface)是MOTOROLA公司推出的一種同步串行外設接口,允許MCU與各個廠家生產的標準外圍設備直接接口,以串口方式交換信息。SPI使用4條線:串行時鐘SCK,主機輸入\從機輸出數據線MISO(簡稱SO),主機輸出\從機輸入數據線MOSI(簡稱SI)和低電平有效的從機選擇線CS。MCU與外設器件的SCK、MOSI、MISO、都是同各端相連。擴展多個外設器件時,SPI無法通過數據線譯碼選擇,故SPI接口的外設器件都有片選端CS,MCU通過不同的I/O口線來分時選通相應外設器件。設計中SS為DataFlash器件的片選信號,TCS為溫度傳感器的片選信號,VCS為多路DA器件的片選信號。圖3為SPI外設器件擴展電路原理圖。
SPI串行擴展系統中MCU作為主器件,啟動一次傳送時產生8個時鐘由SCK送出,作為同步時鐘控制數據的輸入與輸出,對于不同的外設器件,SCK的上升沿還是下降沿進行輸入輸出操作是不同的,有四種操作模式。4種SPI操作模式和LSB在先輸出或MSB在先輸出、主從模式、SPI時鐘速度選擇都可以在MCU的SPI控制寄存器(SPCR)中設置,其中CPHA、CPOL是設置時鐘SCK相位和極性,決定SPI的操作模式。設計中使用了三種操作模式,DataFlash器件工作在模式3、溫度傳感器工作在模式1、多路DA器件工作在模式0。
軟件設計
完成系統邏輯配置和初始化的軟件設計包括兩部分:MCU的匯編語言編程和PC上位機的VC編程。
MCU程序設計
AT89LS8252按照圖4的主程序流程圖來完成邏輯配置和攝像機的參數初始化。下面詳細闡述一下FPGA配置文件下載到DataFlash的程序設計。因為AT45DB041B的存儲空間為4,325,376bit,完全能夠存儲3,006,496bit的配置文件。
圖4 MCU主程序流程圖
AT45DB041B內部存儲結構是將整個存儲空間分為2048個page,每個page為264Byte,經由兩個264Byte的buffer來實現連續的數據寫入。過程是先進行寫buffer1操作,然后發由buffer1寫page命令,在buffer1寫page的同時進行buffer2操作,當buffer2寫完后再發由buffer2寫page命令,再一次進行buffer1的寫操作,如此反復操作實現了AT45DB041B的連續快速寫入。讀出時可以用連續陣列讀命令就可以完成配置文件數據連續讀出。
上位機編程
上位機客戶端程序通過VisualC++軟件編寫,完成配置文件按page容量264字節的分割串口傳送,初始化參數串口傳送,按串口通信協議發送接收控制命令字,配置文件初始化參數的回讀校驗,用戶窗口界面等功能。
結束語
設計中充分利用AT89LS8252的SPI接口、EEPROM、雙DPTR、可編程UART串口等資源,是該高檔MCU的設計的典型應用。創新應用高檔MCU AT89LS8252 對FPGA并行配置的方法,CMOS攝像機參數初始化的方法,多SPI外設器件擴展的設計,為高性能CMOS數字攝像機的研究和FPGA圖像處理核心的二次開發建立了功能全面的控制系統,并且為其它數字攝像機系統設計應用系統提供了成功范例。
評論
查看更多