新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的主從紅外通信的系統設計

        基于單片機的主從紅外通信的系統設計

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

        3、軟件

        中主機接收、發送電路與從機的電路完全相同,紅外線的載波頻率也相同。在紅外中,若采用不同載波頻率來區分主機及從機之間的通信可以通過改善紅外發射和接收電路的頻率特性,但是這樣會大大提高硬件成本,本通過配置適當的通信協議來降低硬件成本。為了避免發射時造成對本機的干擾,采用異步半雙工通信模式,在同一時間內可以是主機發送,從機接收;也可以是從機發射,主機接收。主機及從機通信流程如下:

        主機通信過程為:(1) 上電初始化,完成UART的工作模式、波特率的設置(系統波特率為2400bps);CCU模塊PWM工作模式、PWM頻率設定。CCU模塊工作在對稱的、非反向的PWM模式,頻率38KHz,占空比50%;(2) 等待數據發送控制信號到來;(3) 若接收到發送控制信號,則立即通過紅外串行發送16字節數據;(4) 通過紅外接口接收從機返回的16字節數據;(5) 比較接收到的16字節與發送到16字節數據,若一致則發送下一個數據,否則重發該數據。

        從機通信過程為:(1) 上電初始化,完成UART的工作模式、波特率設置;CCU模塊PWM工作模式、PWM頻率設定;(2) 通過紅外接口從主機接收16字節數據;(3) 判斷是否為重發數據,若是則覆蓋前次接收到的數據。

        主機和從機通信過程包括的函數主要有系統初始化函數UART_Init(),向串口發送數據函數UART_SendByte()、 串口接收紅外信號數據 UART_RcvByte( )等。部分函數程序代碼如下:

        UART_SendByte(unit8 dat) //向串口發送數據

        { SBUF = dat; //發送數據

        while(TI = =0; // 等待發送完畢

        TI = 0;

        }

        unit8 UART_RcvByte() //接收串口數據

        {if(RI = =0) return(0); //若沒有接收到數據,則返回0

        *dat = SBUF;

        RI = 0;

        return(1);

        }

        4、結束語

        紅外通信可用于許多需短距離及非接觸式傳輸數據的場合。本文式紅外通信接口具有硬件電路簡單、成本低、通信可靠等特點,實現了主機及從機雙方非接觸式的數據傳輸。適當修改通信軟件就可以讓系統用于紅外抄表、遙控、遙測等許多場合。

        紅外遙控器相關文章:紅外遙控器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凤山县| 怀宁县| 大连市| 板桥市| 青龙| 广南县| 巴楚县| 弥勒县| 宜兰县| 无锡市| 沁阳市| 门头沟区| 林州市| 宣汉县| 大关县| 蓬溪县| 万全县| 侯马市| 彩票| 乌什县| 镇巴县| 合江县| 颍上县| 永安市| 延庆县| 年辖:市辖区| 冀州市| 井陉县| 江油市| 阿鲁科尔沁旗| 乾安县| 五峰| 万山特区| 防城港市| 长治县| 临沂市| 自贡市| 威信县| 景宁| 博乐市| 徐水县|