新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于STM32F的曼徹斯特電壓/電流編譯碼系統設計

        基于STM32F的曼徹斯特電壓/電流編譯碼系統設計

        作者: 時間:2012-03-05 來源:網絡 收藏

        4 軟件設計

        軟件流程如圖6所示。系統初始化包括時鐘初始化、定時器初始化、DMA初始化等。如果一次性連續編碼的數據最比較大時,應將這罩的DMA緩沖區設置為雙緩沖,為每個用到的DMA通道開辟兩個緩沖區。當DMA使用其中的一個緩沖區時,MCU調用編碼或者譯碼算法來對另外一個緩沖區進行讀寫操作;當DMA數據傳輸完畢的時候,發生一個DMA傳輸結束中斷,在中斷服務程序里切換到另外一個緩沖區,并將編碼算法或者譯碼算法標志位置位。當主程序查詢到標志位置位后,MCU調用編碼或者譯碼算法來對DMA先前指向的緩沖區進行處理(填充數據或者取數據)。當然,如一次性編碼或者譯碼的數據不是很多時,我們只需一個緩沖區就夠了。

        因為CPU處理數據的速度要高于編碼的速率,所以CPU可以空出時間來做其他的事情,時間的長短依賴于緩沖區的大小和編碼的速率,等到主程序中查詢到編碼或者譯碼標志位置位了再去執行編碼或者譯碼算法對數據進行處理,這樣就提高了CPU的工作效率。在實時性要求不高的應用中,不再需要一個專門的CPU去處理編碼或者譯碼。

        5 方案驗證

        本方案已在汽車模擬系統中得到了驗證,這里以某款協議為例,其數據幀格式為一幀數據為19位包括:2個起始位、2個類別位、10個數據位、5個CRC效驗位。

        5.1 編碼方案驗證

        對圖4所示電路的T1點測量曼徹斯特電壓編碼的波形,電流編碼的波形通過測量T2、T3問的壓降來間接測量。

        對一幀數據0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1連續編碼,幀之間延時6μs,編碼速率400kb/s,編碼波形如圖7所示。



        5.2 譯碼方案驗證

        通過對某真實傳感器輸出的曼徹斯特電流碼進行捕獲譯碼,得到其ID信息,譯碼數據如圖8所示。ID正確,譯碼成功。



        結語

        該沒計方案可以方便地實現曼徹斯特電壓、電流編碼譯碼,實現方法靈活、可靠,適用于各種類型的譯碼應用領域。目前,本設計方案已經成功地應用在汽車模擬系統中。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 腾冲县| 大冶市| 三亚市| 遵化市| 永昌县| 金平| 甘南县| 五河县| 星座| 胶南市| 临夏县| 藁城市| 云梦县| 上虞市| 长汀县| 潍坊市| 齐齐哈尔市| 阳谷县| 黑山县| 滦平县| 遵义县| 临高县| 望奎县| 伽师县| 婺源县| 右玉县| 英德市| 康平县| 阿拉尔市| 进贤县| 乌兰县| 库伦旗| 宜城市| 宁蒗| 五原县| 宁津县| 扶沟县| 舟曲县| 湟源县| 台湾省| 徐水县|