基于雙DSP的并聯控制系統中串行通信的研究
SPI 部分發送和接受程序如下:
void spi_TxProcess()
{
while(SpiRegs.SPISTS.bit.BUFFULL_FLAG==1) {}
/*判斷SPISTS.bit.BUFFULL_FLAG)是否為空*/
if(SpiRegs.SPISTS.bit.BUFFULL_FLAG==0)
{
SpiRegs.SPITXBUF=slave_value;
/*向SPITXBUF 寫入數據以啟動數據發送*/
}
}
interrupt void SPIRXINTA_ISR(void)
/*中斷方式接受*/
{
TX_data2=SpiRegs.SPIRXBUF;
/*讀取SpiRegs.SPIRXBUF 后自動清除中斷標志位*/
return;
}
4 異步通信模塊的設計
4.1 基于SCI 的硬件設計
圖 5 為上位機和DSP 的硬件連接圖。RS-232C 標準采用負邏輯:邏輯“1”為-5V~-15V 之間的低電平,通常用-12V 表示;邏輯“0”為+5V~+15V 之間的高電平,通常用+12V 表示。 上述標準稱為EIA 電平。
RS-232C 是用正負電壓來表示邏輯狀態,并且是負邏輯,而TTL 則以高低TTL 器件電平表示邏輯狀態,且為正邏輯,兩者的規定是不同的。為了能夠將與EIA 器件連接,保證二者之間正常通信,必須在它們之間進行電平和邏輯關系的變換。本Maxim 公司生產的集 成芯片MAX232 來實現這一變換[4]。變化后的電平在經過6N137 轉換為適合TMS320F2812 的電平在+3.3V 以內的信號。
4.2 SCI 通信的軟件實現
通信前,發送端和接受端必須使用雙方協商一致的通信協議,數據被拆分成為(bit)進行傳送。傳送的順序一次為起始位、數據位、奇偶校驗位、停止位。每秒鐘傳送的bit 數由波特率來決定。本文中的通信協議設定為:波特率38400bit/s,8 位數據位,無奇偶校驗,1 位停止位,數據傳輸同時采用ASCⅡ碼和二進制兩種形式。
評論