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