基于USB口的智能遙控信號發射裝置的設計
2 軟件設計
軟件的設計按前面的工作流程來,分為各個模塊化來分別設計,主要包含的程序模塊有:串口初始化、PC和單片機的串口通信,單片機對PC傳輸過來的數據進行解讀和數據的編碼設計、以及數據的無線發射這幾個子程序塊。
圖3 無線發射模塊電路
2.1 編碼規則的確定
手動遙控器中使用的是PT2262芯片,雖然可以查到PT2262/PT2272編碼規則,但是為了慎重起見必須重新用示波器測量其編碼規則。當按下遙控器上的一個按鈕后用示波器測量其發射波形,繪制出波形圖。通過比對和計算,確定了手動遙控器的編碼規則為:同步碼+八位地址碼+四位數據碼。其中每一位碼都有高阻、高電平和低電平3種狀態,每種狀態的波形圖如圖4所示。同步碼長度為128a其中前4a個時間內為窄脈沖。
圖4 PT2262的位脈沖波形
2.2 延時的設定
在程序設計中主要的延時有以下幾個:a、4a、12a和124a的精確設定,通過測量手動遙控器中對應的最小延時單位a為120μs,由此編寫精確的單片機延時程序。同時在編程設定延時的時候,要考慮全面,值得注意的是在該系統中才用的單片機芯片的指令運算速度是傳統51系列單片機的6倍,這4個基準延時的設定要盡量減少偏差,為了提高精度,要把執行每條指令消耗的時間算進去。
同時對于4a和12a的延時編程不能簡單的用將a的延時重復執行若干次來完成,否則會有較大的誤差,不能被正確解碼。延時的設定要通過反復計算和測量看是否精確,不精確則進行修改。
2.3 模擬脈沖編碼
根據PT2262/PT2272協議,同時通過對手動遙控器的發射波形進行測量知道,單片機的模擬編碼應該分為3部分,即同步碼、地址碼和數據碼。
地址碼和數據碼本來各有3種狀態,即高電平、低電平和高阻狀態。手動遙控器中地址碼在焊接電路時已經被固定,測量的編碼為高阻狀態,4位數據碼分別由4個按鈕控制,所以都只有高電平和低電平2種狀態,在遙控的時候只能按一個按鈕,所以一個手動遙控器只有4種不同的編碼,因此一個手動遙控器最多只能控制4個不同的終端。但是在單片機進行編碼的時候可以不受控制靈活多變,如果用1和0來表示高低電平這兩種狀態來編碼的話,那么最多可以控制212個不同的終端,如果用00、01、10來表示這3種狀態的話,那么最多可以控制312個不同的終端。在普通的工作環境中僅用1和0兩種狀態來編碼就已經能夠滿足一般設計需求。
在用單片機進行模擬脈沖編碼的時候,通過USB轉串口模塊送過來的數據流進行相應的算法轉換來確定8位地址碼和4位數據碼的每一位應有的狀態,再通過調用不同的基準延時來模擬不同狀態編碼,從而構成模擬的12位的波形編碼,同時在最后還要加上模擬的同步碼,同步碼可以獨立編一個程序,直接調用插入即可。這樣通過單片機的軟件編程完成模擬的PT2262芯片編碼。
萬能遙控器相關文章:萬能遙控器代碼
模擬信號相關文章:什么是模擬信號
手機電池相關文章:手機電池修復
評論