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