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