基于DMX512協(xié)議的燈光控制信號無(wú)線(xiàn)傳輸設計
2.2 微控制器單元
本系統的微控制器采用了STC系列單片機STC12C5410。該單片機含有12 KB的Flash存儲器、512字節RAM、異步串口(UART)和內部PLL單元等。內置的SPI總線(xiàn)控制器可以方便地與射頻芯片CC1100通信,而內部的ISP(在線(xiàn)可編程)模塊允許用戶(hù)直接通過(guò)串口下載程序,給系統軟件升級帶來(lái)便捷條件。由于DMX512的數據波特率為250 kbps,所以選取16 MHz晶振作為時(shí)鐘源,以便產(chǎn)生同頻波特率。
2.3 射頻收發(fā)單元
CC1100是一款低功耗單片射頻收發(fā)芯片,具有通信距離遠、功耗低、接口靈活等優(yōu)點(diǎn)。該芯片主要設定工作在315 MHz、433 MHz、868 MHz和915 MHz的工業(yè)、科學(xué)和醫學(xué)波段;數據速率支持1.2~500 kbps的可編程控制;提供-30~10 dBm的輸出功率;最大空地發(fā)射距離大于200 m,工作電壓為1.8~3.6 V;最大支持64字節的接收和發(fā)送FIFO。設計人員可以通過(guò)SPI接口完成內部寄存器配置,讀寫(xiě)接收/發(fā)送FIFO等內部控制。
2.4 接口電路設計
接口電路的設計主要包括2部分:DMX512總線(xiàn)與單片機之間的通信,以及單片機控制 CC1100射頻模塊收發(fā)數據。由于DMX512總線(xiàn)數據幀格式與通用異步串口(UART)格式基本兼容,因此系統與DMX512總線(xiàn)的通信利用串口通信接口。但DMX512信號的電氣接口標準是EIA-485,與單片機的TTL電平接口不兼容,要實(shí)現相互通信,需要采用電平轉換芯片作為橋接電路。在分解和還原DMX512總線(xiàn)數據上,分別采用MC3486和MC3487。在系統發(fā)送端,通過(guò)MC3486將DMX512總線(xiàn)的差分數據轉換為T(mén)TL電平數據,由單片機的串口接收數據;另外,串口的該引腳還同時(shí)連接到單片機的P3.2/INTO口,用于識別DMX512總線(xiàn)的起始標志(Break),提前通知單片機準備接收總線(xiàn)數據。在系統接收端,通過(guò)MC3487將單片機串口TTL電平數據轉換為DMX512差分數據。
對CC1100的內部寄存器配置和FIFO單元讀寫(xiě)都通過(guò)單片機4線(xiàn)SPI總線(xiàn)接口來(lái)完成。MISO和MOSI分別是數據發(fā)送、接收端口,SCLK是同步時(shí)鐘,SS用作器件的片選信號。CC1100的GD02信號用作內部FIFO的狀態(tài)信號,用于提示單片機FIFO空間已滿(mǎn)。發(fā)射和接收模塊接口示意圖如圖 3所示,發(fā)射模塊與接收模塊的結構基本一致,只是通信數據流方向相反。本文引用地址:http://dyxdggzs.com/article/169482.htm
3 系統軟件實(shí)現
3.1 主要程序流程
系統上電后首先進(jìn)行初始化配置,包括I/O端口輸入/輸出狀態(tài)配置、串口配置、SPI接口設置、CC1100寄存器配置,以及無(wú)線(xiàn)傳輸數據格式的配置,使系統處于正常工作狀態(tài)。此時(shí)主發(fā)射模塊等待DMX512總線(xiàn)數據的到來(lái)。一旦DMX512數據包起始標志出現,即打開(kāi)單片機串口,等待串口接收中斷產(chǎn)生。中斷產(chǎn)生之后單片機緩存總線(xiàn)數據,激活CC1100,并向其發(fā)送FIFO中寫(xiě)入發(fā)送數據,然后無(wú)線(xiàn)發(fā)送出去。
接收模塊的工作流程和發(fā)送模塊相反。在初始化完成之后,單片機設置好CC1100的FIFO寄存器,等待FIFO產(chǎn)生外部中斷。這里外部中斷被用作無(wú)線(xiàn)數據接收成功的標志。FIFO中斷產(chǎn)生后,單片機通過(guò)SPI總線(xiàn)緩存FIFO中的數據,并立刻通過(guò)串口模擬DMX512時(shí)序,恢復總線(xiàn)信號,完成信號的無(wú)線(xiàn)傳輸。發(fā)送和接收數據流程如圖4所示。
模擬信號相關(guān)文章:什么是模擬信號
評論