介紹了在工業現場控制中,一種視頻圖像疊加系統的設計與實現,詳細介紹其硬件原理和軟件組成,并對該系統的進一步擴充提出了一些措施和方案。
??? 關鍵詞: 圖像處理技術 視頻信號 同步信號 像素 ??
??? 圖像處理技術廣泛應用于科學研究、工農業生產、軍事技術、醫療衛生等領域。在工業上的應用主要有:機器人視覺的研制、生產過程自動化、產品質量檢測、機器零件的無損探傷、人工地震信號處理及地層內部結構的重建等等。本文介紹的項目是為實現生產過程自動化,疊加工業現場視頻圖像中多種起標識作用的圖形,簡化以后的數字化處理過程;并且可以通過人機交互,由用戶通過按鍵選擇所要疊加的圖形。目前市場上有能完成其中部分功能的芯片,但是它們價格太高;而且,這些芯片應用面窄,可擴充性差,不能滿足客戶的特殊要求。本文作者設計并實現了一種成本低、應用靈活可靠,易于擴充、實用性強的圖像疊加方案。
??? 1 圖像疊加的原理及總體設計
??? 為實現圖像疊加,必須先了解圖像傳送的原理。圖像是由明暗不同的部分構成的,一幅圖像可以分解成許多個基本單元,叫“像素”。顯然,像素的數目越多,就越能呈現出圖像的細節,因而畫面就越清晰。要想成功地傳送一幅圖像,必須把它所有的像素分別轉換成相應的電信號,再一一加以傳送。現代電視技術中,采用順序(輪流)傳送像素的方法,在發送端按照各個像素的行列位置逐個變成電信號,發送到接收端;在接收端屏幕上,各個像素當然也是一個一個地輪流出現的。因此,要想在接收端的屏幕上得出正確的影象,應該符合兩個條件:首先是發送與接收兩個端的掃描時間應該相等,即掃描頻率一致;另外,每一行和每一場開始掃描的時刻也要一樣,即掃描的相位一致。所以,嚴格地保證接收端和發送端的掃描運動互相同步是非常重要的。目前在傳送視頻信號時,把影象信號、消隱信號和復合同步信號三者按一定比例混合在一起,發送到接收端去控制顯象管中電子束的掃描運動,以保證影象中各像素的位置在熒光屏上正確重顯。我國采用的電視信號是PAL制,場掃描頻率為50Hz,行掃描頻率為15625Hz,它的行同步信號和場同步信號的基本波形如圖1所示。實際傳送的視頻信號波形如圖2所示,在接收端可以利用這三種信號的幅值不同,用幅度分離將它們彼此分開。“消隱信號”是為了在行掃描逆程或幀掃描逆程期間,攝象管和顯象管的電子束被截止而設的信號。“復合同步信號”可控制掃描振蕩器的工作頻率和相位,它由“水平同步信號”和“垂直同步信號”組合而成,二者的頻率不同,在接收端用頻率分離電路(或稱波形分離電路)將它們彼此分開。
??? 本項目中,要求對攝象頭獲得的圖像,疊加上幾種不同形狀的光標,如十字形、圓形、方形、六邊形等;用戶可以通過鍵盤對這些光標的形狀和大小進行選擇。按此要求,我們在圖像傳送過程中,截取從攝象頭傳出的視頻信號,疊加一些圖形信號,再傳送到接收端(本項目中為監視器)。所謂疊加,實質上是在像素級,為每個像素點選擇電信號。這其中有兩個問題,一是精確定位像素點,即確定它的行、列位置;二是定位之后,控制電信號的輸出,即選擇在監視器上的某一像素點,是顯示現場圖像像素的電信號,還是疊加圖形的像素電信號。解決第一個問題的難點在于信號同步,即從視頻信號中提取行同步信號及場同步信號,來控制行/場計數器準確計數,以定位像素點。解決第二個問題在于設置“二選一開關”控制電信號輸出。另外,為實現人機交互,實時動態地控制所疊加圖形的變換,如改變光標的形狀、大小,需要對屏幕編輯緩沖區RAM進行刷新。為避免輸出不完整或不穩定的圖像,在刷新過程中,維持原屏幕上的圖像不變,直至刷新結束。那么如何設置RAM的讀寫控制信號來實現這一要求,是第三個難點。
??? 經過上述分析和市場調查,選用Intel的單片機90C32(它與8032的引腳和功能完全一致)作為CPU,可以充分發揮它的靈活性,并且利用其成熟的典型擴展電路來減少開發的難度和成本。在設計中,同步信號的提取、疊加選擇的控制、屏幕編輯緩沖區的讀寫控制,以及鍵盤譯碼均用硬件實現,使系統快速、穩定、可靠運行。為減少時延,擴展電路全部采用高速CMOS芯片實現。在此功能較完善的硬件基礎上,軟件設計簡單多了,主要完成系統初始化的按鍵響應。
??? 2 硬件設計
??? 硬件設計的總體框圖如圖3所示。
??? 下面分別詳細介紹各個主要部分的電路。
??? 2.1 同步信號的提取及行/場計數器電路
??? 準確提取視頻信號中的同步信號對于本項目的成攻至關重要,幸運的是市場上提供了LM1881芯片,它僅需幾個外接元件,就可以可靠地提取出視頻信號中的同步信號。LM1881的引腳及連接電路如圖4所示,圖中的電容值均為0.1μF,電阻阻值為680KΩ。
??? 行/場計數器由193芯片級聯而成。按PAL制式規定,場掃描頻率為50Hz,幀頻25Hz,總掃描線數625,由于分為奇偶場掃描,每場有312行,需用二進制地址9位。選擇4MHz的晶振行為行計數器的計數脈沖輸入,那么每行有256個像素點,計算公式為:每片193有四位輸入、輸出端,輸入端均接“0”,輸出端組成地址總線。為保持行、場計數器電路的整齊,并保留一定的擴充性,行、場計數器各設3片193芯片實現。計數器電路如圖5所示。
??? 行同步信號經過一級非門,送往行計數器三片193的清零端MR;同時作為場計數器的計數脈沖,送往場計數器最低級193的計數脈沖輸入端CU;而行計數器各級之間的級聯由低級193芯片的TCU端送往更高一級193芯片的CU端;圖中未畫出的行計數器的計數脈沖輸入端CU由晶振信號送入。場同步信號經過一級非門,送往場計數器三片193的清零端MR;場計數器各芯片之間的級聯方式同行計數器相同。計數器產生的18位地址,經過總線鎖存器,高15位送往屏幕編程緩沖區RAM,最低3位送往疊加控制的并串轉換電路。
??? 2.2 圖像疊加及控制電路
??? 參與疊加的信號有兩路:現場視頻信號、疊加圖形信號。由于只要求完成對攝象頭獲取的圖像的疊加,并在監視器上重顯圖像,疊加信號可以為黑電平和白電平。而視覺效果上黑電平更明顯,所以我們選擇疊加黑電平。這個“二選一”開關可用美國MAXIM公司生產的MAX442來實現。MAX442芯片是內含放大器的視頻兩路開關,它具有140MHz的單位增益帶寬,250V/μs的轉換速率;相位誤差小于0.09°,增益誤差小于0.07%;通道切換速率為36ns,可以直接驅動50Ω或75Ω的同軸電纜。雖然它價格相對較貴,但考慮到選用它之后,系統的性能可以得到較大幅度的改善,而且本項目的總體成本仍然很低,即性能價格比合理,所以選擇這種芯片。
??? MAX442的引腳圖與連接電路如圖6所示,圖中的電容容值單位為μF,電阻單位為Ω。INO,IN1為兩路視頻信號的輸入端,分別外接現場視頻信號和黑電平;地址線AO控制“二選一”開關,選擇輸出哪個通道的信號。AO在屏幕編輯緩沖區中僅占一位空間,所以疊加控制字可以按位讀寫修改,這大大減少了所需的屏幕編輯緩沖區RAM的存儲空間。在RAM中數據是按照字節存取的,因此在輸出時,需要把從RAM中讀出的數據進行并串轉換,送到MAX442的AO端。這種“八選一”的數字邏輯電路用可編程芯片GAL可以很方便地實現,成本也不高,因此我們選擇用GAL實現,邏輯表達式從略。
??? 2.3 屏幕編輯緩沖區的控制設計
??? 屏幕編輯緩沖區選擇用RAM,是因為用戶要求疊加的均是規則的幾何圖形,由CPU 90C32動態計算圖形各點的位置算法非常簡單;用戶完全可以接受。
??? CPU和視頻輸出端都要對屏幕編輯緩沖區進行訪問,其中CPU要完成對RAM的刷新,即“寫”RAM;輸出端僅需讀RAM。也就是說,對RAM的訪問可以定為“寫時禁止讀”,“讀時禁止寫”。讓它們共用數據總線DB和地址總線AB,而通過控制CPU和行場計數器的地址鎖存器的使能端E,來分時使用。可見,這兩組地址鎖存緩沖器的使能端E是互斥的,可以僅用90C32的一根PI端口I/O線來作一個“單刀雙擲開關”,由CPU通過控制這根I/O線來實現總線的分時使用。所以在電路設計中,RAM的片選端CS直接接地,寫使能端WR與CPU的WR相連,而讀使能端OE與行/場計數器的地址鎖存器的使能端E相連。當CPU要對屏幕編輯緩沖區寫時,選通它的地址鎖存器的使能端E,同時行場計數器的地址鎖存器被禁止,RAM的讀使能端也被禁止,即RAM處于“只寫”狀態。反之,當CPU不需要對RAM刷新時,選通行/場計數器的地址鎖存器的使能端E,同時RAM的讀使能也被選通,RAM處于“讀”狀態,并且禁止寫操作。用這種“存儲器雙總線技術”,避免了對屏幕編輯緩沖區的沖突訪問,從而保證數據的完整性,得到穩定、正確的疊加視頻圖像。
??? CPU 90C32的典型擴展電路包括程序存儲區的擴展、數據存儲區的擴展、時鐘電路和晶振電路的擴展。考慮到項目需求并保留一定的擴充余地,存儲器ROM選用27256芯片,RAM選用61256芯片。其中除RAM(屏幕編輯緩沖區)為臨界區,需要特殊設計以外,其它電路與通用的單片機擴展電路完全相同,在此不另做介紹。
??? 2.4 按鍵譯碼電路
??? 本項目中,用戶在人機交互選擇疊加光標的形狀與大小時,僅需要四個按鍵,因此不必使用功能強大的8279芯片,直接擴展90C32即可。四個按鍵經過譯碼,送到90C32的P1端口,這個譯碼邏輯非常簡單,同樣用GAL實現,邏輯表達式從略。在實際使用中,用戶選擇一次光標的大小與形狀之后,總會穩定一段時間去進行其主要工作,所以操作按鍵的時間對于整個系統的工作時間而言是很短的。CPU對按鍵的響應采用中斷方式,這可以比輪詢方式大大減少對CPU處理器資源的占用。在按鍵電路中,一共占用P1端口2根I/O線,AO、A1是譯碼后的按鍵地址(或代碼);另有INT是檢測是否有按鍵被按下的中斷信號線,它與90C32的外接中斷輸入端相連接。通常INT為高電平,若有按鍵被按下,INT為低電平,CPU可響應中斷。
??? 按鍵電路的設計,也選擇簡單、典型而可靠的通用電路實現。目前,按鍵是利用機械觸點的合與斷來作用的,當電信號通過按鍵時,在閉合及斷開的瞬間均有抖動過程,會出現一系列的負脈沖,持續時間一般為5~10ms。按鍵的穩定閉合期,由操作人員的按鍵動作所決定,一般為十分之幾秒至幾秒時間。為了保證CPU對按鍵的一次閉合,僅做一次鍵輸入處理,必須去除抖動影響。通常去抖影響的措施有硬、軟件兩種,本項目用兩重 去抖來提高可靠性:硬件設計中,為每個按鍵在輸入端加一個一端接地的電容,濾去毛刺脈沖;軟件設計中,有按鍵去抖過程,具體思想在軟件設計中詳細講述。
??? 3 軟件實現
??? 由于本項目中的難點工作均用硬件實現,所以大大減少了軟件設計工作量。軟件主要實現系統初始化和中斷處理過程,其流程圖如圖7所示。
??? 主要過程的設計思想如下所述。
??? 3.1 系統初始化
??? 初始化參數,如代表光標大小的RDS、代表光標形狀的SHAPE等等;
??? 初始化監視器的屏幕:清零屏幕編輯緩沖區、疊加十字光標和圓形光標;
??? 開中斷,使CPU處于可接收外部中斷信號的狀態。
??? 3.2 中斷處理過程
??? 首先打開在CPU響應中斷時關閉的中斷,然后調用按鍵去抖過程,確認有合法按鍵輸入后取出按鍵代碼,刷新屏幕編輯緩沖區,并調用按鍵響應過程。
??? 3.3 按鍵響應過程
??? 四個子程序分別對應于四個按鍵的功能:
??? KEY0:將現在屏幕上的光標尺寸放大一個單位;
??? KEY1:將現在屏幕上的光標尺寸縮小一個單位;
??? KEY2:改變現在屏幕上的光標形狀,依次重復按此鍵,光標的形狀依次變為圓形、方形、六邊形;
??? KEY3:同時疊加所有不同大小的圓形光標,這是考慮到在實際應用中,圓形光標的使用頻率較其它形狀更高而特設的。
??? 3.4 按鍵去抖過程
??? 在檢測到有且僅有一個鍵被按下時,記錄此時閉合的按鍵的代碼,然后執行一個延時過程,如延時10ms;之后,再判斷是否仍有按鍵閉合。若有,檢測它的代碼與方才記錄的代碼是否一致,只有二者一致時,才認為確實有按鍵閉合,進行按鍵響應處理。
??? 此項目已投入實際生產,運行結果令研制人員和客戶滿意,認為它:a)原理簡單,功能齊全,性能可靠,成本低廉;b)可擴充性強,只需作少許改動,即可適應用戶的更高要求:
??? (1)若要求進一步提高圖像疊加的精確度,可選擇更高頻的晶振作為行計數器的輸入脈沖,必要時對行計數器電路加以擴展;同時在軟件的地址處理上略加改動即可。這相當于將像素點細化,因而疊加后的圖像清晰度更高。
??? (2)若要求對疊加的圖形加以擴充或改動,可對相應的軟件“按鍵處理過程”做調整。若需要增加按鍵的數目,還要對硬件中的按鍵譯碼電路進行擴展。由于在硬件設計中已考慮到未來的擴展,目前的設計僅需作很少改動,并且可最大限度地減少占用CPU90C32的端口線。如4個按鍵需要3根I/O線,即2線地址線,1根中斷檢測線;若擴展為8個按鍵,只需增加1根地址線,并重寫譯碼GAL的邏輯即可。以此類推,若擴展N個按鍵,需要n根I/O線,其中,
??? n=[logN]+1+1
??? 但是,由于GAL芯片本身結構的限制,建議在按鍵超過8個時,選用8279擴展鍵盤,以更好地滿足用戶要求。
??? (3)若要求能疊加更多類的信號,如增加要求“可選擇疊加黑電平或白電平”,可對硬件設計的疊加電路及其控制部分加以修改。MAXIM公司提供的芯片MAX441是4信道視頻多路開關,MAX440是8信道視頻多路開關,它們的單位增益帶寬更高,其他主要參數與MAX442基本一致。詳細介紹請查閱《MAXIM DATABOOK1998》。
??? (4)若要對視頻信號進行其它加工、處理,也可由本文所述的原理與實現得到參考和啟發。
評論
查看更多