透過MCU解析特殊通訊 |
答題得分者是:walltsou
|
極光
初階會員 發表:32 回覆:96 積分:40 註冊:2005-01-16 發送簡訊給我 |
最近有須解析一組特殊通訊!該通訊格式如下
SOF >> _-----_ 寬度為35uS Bit H >> _--------___-- H = 16uS ; L = 8uS Bit L >> _---______-- H = 8uS ; L = 16uS 當收到連續 --___________-- 超過75uS Low -> 表示通訊結束 我自己用了很多辦法去抓,都會有資料抓錯的問題;目前是透過兩組正負緣觸發去抓脈波寬度,再照時間去比較是H or L,單因現在使用的mcu中斷響應很慢,由波行觸發後要隔4uS才有辦法進中斷程式,這導致讀取資料錯誤。 不知個位有什麼好方法可以提供參考 |
walltsou
一般會員 發表:3 回覆:45 積分:24 註冊:2012-09-29 發送簡訊給我 |
8 us有點短,對於低速MCU來說有些吃力。
不過還是有一點點機會。 因為1 bit傳輸需時24us。也就是在第8 us時一定要讀到IO。 所以設定中斷在上綠觸發啟動。經4us後在中斷程式中,要在8us後面一點讀取到IO,讀到hi/low就是這次bit的結果。然後就可退出中斷。 不配合IO及示波器會很不好做。 若以STM32系列的話,可以使用PWM In功能,用硬體去取得hi/low時間值。 PS: 感謝你推薦"簡單多工",最近改版已沒機會在8051上試跑了。使用有問題也請告知,我會改看看。
------
目前以STM32為主力 部落格 http://wallace7914032.blogspot.tw/ |
walltsou
一般會員 發表:3 回覆:45 積分:24 註冊:2012-09-29 發送簡訊給我 |
|
極光
初階會員 發表:32 回覆:96 積分:40 註冊:2005-01-16 發送簡訊給我 |
===================引 用 walltsou 文 章=================== 設計需求:一個上緣中斷,一個70us中斷timer SOF: 上緣中斷,讀取16 us後的IO,啟動timer,中斷退出。 1~n bit:: 上緣中斷,讀取8 us~15 us的 IO,記錄timer,timer漬0,中斷退出。 70 us timer中斷: 已超時,表示已無上緣中斷。啟動解碼及時間檢查的程式,中斷退出。 解碼程式:檢查時間合理性,及解碼正確與否。 做法為,上緣觸發後直接在中斷進行 XX us延遲後,讀取io狀態,判定SOF or BitH or BitL,同時透過70uS中斷時間來卻認是否超時! 我這樣說因該沒錯吧! ====================================================================================================== 題外話: 您的"8051簡單多工"真的是對我幫助很大,在此先感謝您發表"8051簡單多工"這篇文章。 我工作上的程序沒有很多時後是兩件事件須同時進行的,但提供給我另外一的幫忙就是'有限狀態機',我大部分的程序都是 A -> B -> C。 以往我都用 Switch 旗標來判斷流程,但導入'簡單多工'做法,我把每個動作都看為一組TASK,透過TASK切換就可換到下一個TASK。就如同連連看一般。 程式寫起來好寫很多,主回圈都不用動,超級方便的! 我現在的案子都是以該架構去跑的! |
walltsou
一般會員 發表:3 回覆:45 積分:24 註冊:2012-09-29 發送簡訊給我 |
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
你的問題可以參考此書有詳細的解說! ET13x210/211/221 無線通訊模組應用實例 作(譯)者:李仁貴、劉新盛、陳俊錩 出版者:全華 書號:05381 ISBN:9572148176 祝你好運! ===================引 用 極光 文 章=================== 最近有須解析一組特殊通訊!該通訊格式如下 SOF >> _-----_ 寬度為35uS Bit H >> _--------___-- H = 16uS ; L = 8uS Bit L >> _---______-- H = 8uS ; L = 16uS 當收到連續 --___________-- 超過75uS Low -> 表示通訊結束 我自己用了很多辦法去抓,都會有資料抓錯的問題;目前是透過兩組正負緣觸發去抓脈波寬度,再照時間去比較是H or L,單因現在使用的mcu中斷響應很慢,由波行觸發後要隔4uS才有辦法進中斷程式,這導致讀取資料錯誤。 不知個位有什麼好方法可以提供參考 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |