一種單片機實現的嵌入式視頻切換器
2 軟件設計
根據會議電視系統的整體要求,軟件主要由主程序和串口中斷服務子程序組成。編程時著重考慮了以下幾方面:對整個控制器正確地初始化;對上級主控命令正確地分析、判斷、處理;對矩陣的正確更新,對數據的及時保存(主程序流程如圖4)。

2.1 主機控制命令
主機發出的控制命令有兩種。第一種是定長的,包含8個字節(見圖5)。C3H是開始字節,5AH表示結束;地址1、地址2表示控制器在整個系統中所處的位置;數據1、數據2包含了對矩陣輸入輸出更新的具體信息;優先級代表了本次命令的優先級別,00H級別最高;校驗字節為前6個字節之和。第二種命令是分組控制命令,長度不定(見圖6),C5H 表示第二種控制命令的開始;地址1、地址2同第一類控制命令;數據0是本次分組命令所控制的輸出通道;數據1至數據n是本次分組中的輸入通道;校驗字節為前幾個字節之和對FFH取余;55H 表示本次命令的結束。
2.2主程序
控制器在沒收到主機發送的控制命令時,會一直運行于主程序之中。主程序主要完成對系統的初始化;定時向看門狗電路發送電壓翻轉信號;對主機的控制命令發送回傳信息。
在初始化時,先從存儲器中讀取信息,判斷讀出的數據是否超出了矩陣的輸入輸出范圍。若數據無誤,則按此信息(一般是上次關機時控制器的狀態)初始化矩陣。若發現某一數據有誤,則按預先的約定初始化矩陣。控制器在向主機返回命令之前要判斷回響標志,若標志為“1”,則調用回響主機的子程序,否則會跳過這一步,繼續向看門狗電路發送電壓翻轉信號,以示其工作正常。
2.3 串口中斷服務子程序
一旦控制器檢測到串口有數據到來,就會發出中斷請求信號。單片機在執行完當前的指令后,會轉向服務子程序(流程如圖7)。在子程序內要完成對主控命令的判斷、分析、處理,完成對矩陣的更改及信息的保存等任務。中斷服務子程序也是軟件設計的核心部分與難點之處。在接收完主機發送的命令之后,要處理的事務有:
(1)判斷命令是否正確。這包括判斷命令是否正確;檢查命令是第一類還是第二類。若是第一類命令,要檢查其起始、結束字節和校驗字節是否正確;輸入輸出是否在規定的范圍之內。若是第二類命令,要保存分組信息,開啟記時器。若檢查有一點不對,將放棄該命令,恢復現場,退出服務子程序。
評論