基于VC6.0的多單片機和PC機串口通訊實現方案
引言
在計算機控制系統中,不可避免的要采用多機系統進行通信。在由一臺PC 機(上位機) 和多臺單片機(下位機) 構成的分布式控制系統中,通過PC 機的串口與多臺單片機的通信是最方便的。在這樣的分布式控制系統中,單片機與微機之間的多路通信是整個系統的關鍵。
系統組成及通訊原理
系統構成
由上位機(即計算機)、通訊接口和下位機3部分組成。上位機選用的是工控機 ,智能終端由單片MSP430F169和外圍傳感器放大電路等構成。要想與PC 串口連接或者其它帶有串口的終端連接,必須要進行EIA-RS-232C 與MSP430 電平和邏輯關系的轉換。本設計采用MAX3232芯片, 可完成3V~5V 電平與串口電平的雙向轉換。
MSP430F169單片機屬于德州儀器公司MSP430F14X/16X FLASH 系列。該系列是一組超低功耗的微控制器,工作電壓范圍1.8~3.6V。由于具有16位RISC結構,16 位寄存器和常 數寄存器,MSP430 達到了最大的代 碼效率。數字控制的振蕩器提供快速從所有低功耗模式蘇醒到活動模式的能 力時間少于6ms。 MSP430F169 帶有兩個16 位定 時器(帶看門狗功能)、速度極快的8 通道12 位A/D 轉換器(ADC)(帶內部參考電壓、采樣保持和自動掃描功能)、一個內部比較器和兩個通用同步/異步發射接收器、48個I/O口(均可獨立控制)的微處理器結構。硬件乘法器提高了單片機的性能并使單片機在編碼和硬件上可兼容。通訊原理
MSP430F169單片機支持兩種不同的串行協議,通用同步協議(USART協議)和同步協議(SPI協議),用控制寄存器UCTL(表1)中的控制位SYNC來選擇所需的模式。SYNC=0:選擇異步模式UART;SYNC=1:選擇同步模式SPI,在此選擇異步模式。
控制寄存器內的信息決定了USART的基本操作,如選擇通信協議、通信模式、字符長度和校驗位等。在此設定字符長度為8位:CHAR=1,停止位1位:SP=0,奇校驗:PEV=0。 MSP430的波特率發生器有一預分頻/分頻器和一個調整器的組合,即使晶振頻率不是波特率的整數倍,這一組合也能使MSP430 正常工作而且還可以使其通訊協議工作在最大的波特率。采用這一技術, 即使用手表晶振(32768Hz),波特率也可以達到4800 和9600,選擇波特率為9600,外部時鐘為ACLK。
系統通訊協議
在PC機和多臺單片機的通訊中,確定一個明確而合理的通訊協議是關鍵,包括對數據格式、通訊方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問題做出統一規定。為了區別不同的分機,必須為每個分機分配一個唯一的地址,此地址唯一區別各單片機。數據格式采用數據包的形式,一次傳輸一組數據。
起始標志位:1 個字節
分機地址: 1 個字節
命令/ 數據: 1 個字節
數據長度: 1 個字節
數據內容: n 個字節
和檢驗: 2 個字節
結束標志位: 1 個字節
數據格式中的地址位表示與PC 機通訊的單片機地址。操作命令則表示此次通訊要完成的操作。在單片機發送上位機接收的時候,協議規定命令FFH 為上報數據, 此時數據包中的數據長度、數據內容、和檢驗三個域便填充實際發送數據的個數、數據及和校驗;命令F0H - F3H 則表示單片機給PC機的反饋信息,此時數據包中的數據長度、數據內容和檢驗三個域為空,其中當命令為F0H 表示接收成功,F1H 表示接收失敗并要求重發,F2H 表示單片機有數據上報要求,F3H 表示單片機無數據上報要求。操作命令域在PC 機發送單片機接收的時候也相似的協議規定。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
數字通信相關文章:數字通信原理
分頻器相關文章:分頻器原理 晶振相關文章:晶振原理
評論