康明星
摘 要:給出了一種基于MAX7456的OSD系統(tǒng)的設計和實現方法,該方法利用ARM7進行配置和控制,并通過RS232及RS485接口實現配置參數的在線修改,可實現在視頻信號中疊加顯示字符、漢字及用戶自定義圖形。
關鍵詞:ARM7;OSD;MAX7456;視頻監(jiān)控
中圖分類號:TN919.8 文獻標志碼:A 文章編號:2095-1302(2014)03-0052-02
0 引 言
當前視頻監(jiān)控技術廣泛應用在國民經濟生活的各個領域,在公共安全、交通、監(jiān)獄、機房等需要大規(guī)模集中監(jiān)控的應用場合,面對動輒多達數百路、乃至上千路的視頻信號,對各路視頻信號來源進行標識以便有效區(qū)分各路視頻信號,具有重要的工程應用價值。同時,許多人機界面和視頻播放場合也需要能夠疊加各種圖文信息的技術。OSD是指在視頻信號中疊加字符或圖形,從而在指定屏幕位置與圖像信號同時顯示,屬于視頻疊加技術的一種[1]。OSD的實現主要包括3種方式:第一是基于計算機視頻編解碼技術的軟件實現方式,其特點是需要計算機的支持,占用一定的CPU資源,但顯示參數的改動方便,OSD功能本身不需要額外的成本開銷;第二是基于FPGA或DSP的嵌入式系統(tǒng)實現方式,通過在FPGA內置OSD軟核,或者在DSP中運行OSD算法來實現,這種實現方式在一些采用嵌入式解決方案的視頻服務器、網絡攝像機上比較常見;第三是基于OSD專用集成芯片的硬件實現方式,單片OSD器件可省去大量外圍電路,可有效降低系統(tǒng)設計復雜度和成本,但顯示內容的多樣性受限。
本文給出了基于MAX7456和ARM7的OSD系統(tǒng)設計方案,包括硬件設計與軟件設計兩大部分,并通過實際制作驗證了方案的可行性。
1 系統(tǒng)硬件設計
1.1 系統(tǒng)總體設計
MAX7456是美信(MAXIM)公司推出的集成了EEROM的單通道、單色OSD芯片,其內部EEROM預置了符合NTSC和PAL制式的256個用戶可編程字符,字符大小為12×18像素,可對每個字符進行閃爍、反色和背景控制等操作[2]。MAX7456帶輸出衰減補償功能,具有狀態(tài)(STAT)寄存器、顯示存儲器數據輸出(DMDO)寄存器和字符存儲器數據輸出(CMDO)寄存器,用戶可通過SPI接口靈活設置MAX7456的各項參數,比如設置字符類型、尺寸等顯示參數。
系統(tǒng)原理框架如圖1所示,采用意法半導體公司的ARM7微控制器STM32F103C8T6單片機對MAX7456進行參數配置和控制,該ARM7為32位微控制器,最高工作頻率72 MHz,具備工業(yè)級穩(wěn)定性,內置64 KB FLASH和20KB SRAM存儲空間,充足的存儲空間足以滿足MAX7456緩存需求;外設資源非常豐富,配有多達3路UART及2路SPI接口,便于與其他系統(tǒng)交互,提供多種接口供用戶對系統(tǒng)進行參數預設值和在線修改。
圖1 系統(tǒng)原理框圖
1.2 系統(tǒng)電源電路設計
從數據手冊可知,MAX7456采用5 V供電,最大電流約為200 mA。為擴展系統(tǒng)輸入電壓范圍,可采用LM2576-5穩(wěn)壓芯片提供5 V電壓供給MAX7456。ARM7則采用3.3 V供電,但其工作電流不大,為簡化設計,可采用SPX3819-3.3對5 V電源降壓產生3.3 V電壓供給ARM7,同時也實現了MAX7456與ARM7的電源隔離。SPX3819是一款低壓差穩(wěn)壓芯片(LDO),其滿載(500 mA)情況下的壓降也僅為340mV。具體電源電路設計如圖2所示。
圖2 系統(tǒng)電源隔離設計電路
1.3 MAX7456電路設計
MAX7456自身時鐘可工作在27 MHz,其SPI接口最高工作頻率為10 MHz,而ARM7的SPI時鐘最大可以達到18 MHz(此時系統(tǒng)時鐘為72 MHz),足以滿足MAX7456的需求。在本系統(tǒng)設計中,ARM7作為SPI通信主機(Master),SPI通信所用的時鐘信號由ARM7的SPI單元輸出。為避免因對MAX7456進行讀寫操作導致OSD輸出圖像出現瞬間變暗現象,ARM7讀寫MAX7456內部寄存器前,先檢測MAX7456的VSYNC引腳,只有該引腳電平為低,才對MAX7456內部顯示存儲區(qū)進行寫操作。ARM7的每個I/O引腳均具備中斷功能, MAX7456的LOS引腳接在ARM7的PA0,而PA0具備喚醒功能,當MAX7456出現丟失同步時,LOS輸出置高以喚醒ARM7,再由ARM7進行相應出錯處理。這樣一來,不需要配置MAX7456時,ARM7可處于低功耗模式。
1.4 接口電路設計
所用ARM7外設接口豐富,集成了3個UART、2個SPI、1個CAN,其中SPI1用來與MAX7456通信,UART1用于同PC或其他系統(tǒng)進行RS232通信,UART2用作RS485接口??紤]到帶云臺的視頻監(jiān)控場合,云臺的控制大多采用RS485,因此設計上預留RS485接口,使得OSD系統(tǒng)可部署在監(jiān)控現場,用戶遠程即可配置MAX7456的顯示參數。從接口轉換的角度來看,ARM7可理解為協議轉換器,用戶通過RS232和RS485發(fā)送配置MAX7456顯示疊加字符的指令,ARM7對指令進行解讀,轉換為MAX7456寄存器操作必須遵循的一系列指令組合,再通過SPI接口進行傳輸。
2 系統(tǒng)軟件設計
2.1 MAX7456接口時序
MAX7456的SPI命令長度為16位:高8位(MSB)代表寄存器地址,低8位(LSB)代表數據,即不管是讀還是寫命令,都需要先從SDIN引腳輸入地址碼,之后再根據是讀還是寫來讀取或者寫入后續(xù)8位數據。MAX7456對同一個寄存器進行讀操作和寫操作,其對應的寄存器地址是不同的。使能SPI通信之后,MAX7456從SDIN讀入第一個字節(jié),以確定正在執(zhí)行的操作類型。
圖3所示為MAX7456寫入數據的時序圖[3],當CS片選引腳置低時,開啟SPI傳輸,在時鐘信號SCLK上升沿采集SDIN輸入數據,高8位為目標寄存器的地址碼,低8位為寫入的數據值;當CS置高時,數據被鎖存到輸入寄存器。如果在數據傳輸期間片選信號置高,則本次寫入操作失敗,最終數據不會被寫入目標寄存器。
圖3 MAX7456寫數據的時序圖
圖4所示為MAX7456讀取數據的時序圖[3],當CS置低時,開啟SPI傳輸,從SDIN依次輸入7位目標寄存器的地址碼,此時SDOUT的輸出沒有意義,地址碼輸入完成后,被選中的目標寄存器的數據從SDOUT輸出。CS置高時,結束本次操作。
圖4 MAX7456讀數據的時序圖
2.2 OSD程序流程圖
不同的實際應用場合,所需的程序各有不同,本文給出一種基本的程序設計流程,系統(tǒng)上電復位之后,ARM7先初始化相關I/O、UART及SPI接口等,接著檢測是否需要配置MAX7456。之后ARM7進入睡眠模式,在此模式下,來自RS232、RS485接收中斷信號及MAX7456的LOS引腳觸發(fā)的外部中斷信號均可以喚醒ARM7,執(zhí)行相應的中斷處理程序,比如接收到來自RS232接口的指令后,便可根據指令更改MAX7456的顯示參數。其程序流程圖如圖5所示。
圖5 程序流程圖
3 結 語
本系統(tǒng)采用ARM7為控制核心實現對MAX7456的參數配置和控制,用戶自定義的字符數據存儲在ARM7中,并可通過RS232和RS485進行在線更改。本文首先介紹了基于MAX7456的OSD系統(tǒng)硬件電路設計方法,并給出了具體的設計電路圖,接著分析了MAX7456接口時序,給出了程序流程圖。本文所述方案經過了實際測試,驗證了其可行性和可靠性,具有實際應用價值。
參 考 文 獻
[1]孫泓波,顧紅,蘇為民.視頻字符疊加技術的發(fā)展及四種實現方案[J].電子技術應用,2000(11):44-46.
[2]匡炎.基于FPGA和DSP的圖像采集處理系統(tǒng)的研究與實現[D].廣州:華南理工大學,2010.
[3]MAXIM. MAX7456 datasheet[EB/OL].[2010-10-23].http://www.21icsearch.com/pdf-DE71981B8F687F0C/MAX7456.html.
[4]吳川,楊冬.基于UPD6464的視頻字符疊加技術的研究[J]. 電子技術,2010(2): 18-20
[5]費莉梅.網絡視頻錄像機OSD子系統(tǒng)軟件設計[D].杭州:浙江大學,2012.
圖3所示為MAX7456寫入數據的時序圖[3],當CS片選引腳置低時,開啟SPI傳輸,在時鐘信號SCLK上升沿采集SDIN輸入數據,高8位為目標寄存器的地址碼,低8位為寫入的數據值;當CS置高時,數據被鎖存到輸入寄存器。如果在數據傳輸期間片選信號置高,則本次寫入操作失敗,最終數據不會被寫入目標寄存器。
圖3 MAX7456寫數據的時序圖
圖4所示為MAX7456讀取數據的時序圖[3],當CS置低時,開啟SPI傳輸,從SDIN依次輸入7位目標寄存器的地址碼,此時SDOUT的輸出沒有意義,地址碼輸入完成后,被選中的目標寄存器的數據從SDOUT輸出。CS置高時,結束本次操作。
圖4 MAX7456讀數據的時序圖
2.2 OSD程序流程圖
不同的實際應用場合,所需的程序各有不同,本文給出一種基本的程序設計流程,系統(tǒng)上電復位之后,ARM7先初始化相關I/O、UART及SPI接口等,接著檢測是否需要配置MAX7456。之后ARM7進入睡眠模式,在此模式下,來自RS232、RS485接收中斷信號及MAX7456的LOS引腳觸發(fā)的外部中斷信號均可以喚醒ARM7,執(zhí)行相應的中斷處理程序,比如接收到來自RS232接口的指令后,便可根據指令更改MAX7456的顯示參數。其程序流程圖如圖5所示。
圖5 程序流程圖
3 結 語
本系統(tǒng)采用ARM7為控制核心實現對MAX7456的參數配置和控制,用戶自定義的字符數據存儲在ARM7中,并可通過RS232和RS485進行在線更改。本文首先介紹了基于MAX7456的OSD系統(tǒng)硬件電路設計方法,并給出了具體的設計電路圖,接著分析了MAX7456接口時序,給出了程序流程圖。本文所述方案經過了實際測試,驗證了其可行性和可靠性,具有實際應用價值。
參 考 文 獻
[1]孫泓波,顧紅,蘇為民.視頻字符疊加技術的發(fā)展及四種實現方案[J].電子技術應用,2000(11):44-46.
[2]匡炎.基于FPGA和DSP的圖像采集處理系統(tǒng)的研究與實現[D].廣州:華南理工大學,2010.
[3]MAXIM. MAX7456 datasheet[EB/OL].[2010-10-23].http://www.21icsearch.com/pdf-DE71981B8F687F0C/MAX7456.html.
[4]吳川,楊冬.基于UPD6464的視頻字符疊加技術的研究[J]. 電子技術,2010(2): 18-20
[5]費莉梅.網絡視頻錄像機OSD子系統(tǒng)軟件設計[D].杭州:浙江大學,2012.
圖3所示為MAX7456寫入數據的時序圖[3],當CS片選引腳置低時,開啟SPI傳輸,在時鐘信號SCLK上升沿采集SDIN輸入數據,高8位為目標寄存器的地址碼,低8位為寫入的數據值;當CS置高時,數據被鎖存到輸入寄存器。如果在數據傳輸期間片選信號置高,則本次寫入操作失敗,最終數據不會被寫入目標寄存器。
圖3 MAX7456寫數據的時序圖
圖4所示為MAX7456讀取數據的時序圖[3],當CS置低時,開啟SPI傳輸,從SDIN依次輸入7位目標寄存器的地址碼,此時SDOUT的輸出沒有意義,地址碼輸入完成后,被選中的目標寄存器的數據從SDOUT輸出。CS置高時,結束本次操作。
圖4 MAX7456讀數據的時序圖
2.2 OSD程序流程圖
不同的實際應用場合,所需的程序各有不同,本文給出一種基本的程序設計流程,系統(tǒng)上電復位之后,ARM7先初始化相關I/O、UART及SPI接口等,接著檢測是否需要配置MAX7456。之后ARM7進入睡眠模式,在此模式下,來自RS232、RS485接收中斷信號及MAX7456的LOS引腳觸發(fā)的外部中斷信號均可以喚醒ARM7,執(zhí)行相應的中斷處理程序,比如接收到來自RS232接口的指令后,便可根據指令更改MAX7456的顯示參數。其程序流程圖如圖5所示。
圖5 程序流程圖
3 結 語
本系統(tǒng)采用ARM7為控制核心實現對MAX7456的參數配置和控制,用戶自定義的字符數據存儲在ARM7中,并可通過RS232和RS485進行在線更改。本文首先介紹了基于MAX7456的OSD系統(tǒng)硬件電路設計方法,并給出了具體的設計電路圖,接著分析了MAX7456接口時序,給出了程序流程圖。本文所述方案經過了實際測試,驗證了其可行性和可靠性,具有實際應用價值。
參 考 文 獻
[1]孫泓波,顧紅,蘇為民.視頻字符疊加技術的發(fā)展及四種實現方案[J].電子技術應用,2000(11):44-46.
[2]匡炎.基于FPGA和DSP的圖像采集處理系統(tǒng)的研究與實現[D].廣州:華南理工大學,2010.
[3]MAXIM. MAX7456 datasheet[EB/OL].[2010-10-23].http://www.21icsearch.com/pdf-DE71981B8F687F0C/MAX7456.html.
[4]吳川,楊冬.基于UPD6464的視頻字符疊加技術的研究[J]. 電子技術,2010(2): 18-20
[5]費莉梅.網絡視頻錄像機OSD子系統(tǒng)軟件設計[D].杭州:浙江大學,2012.