MCU單片機(jī)并行通訊的原理參考
發(fā)布時(shí)間:2017-07-03 責(zé)任編輯:susan
【導(dǎo)讀】某系統(tǒng)中使用了三路串行接口的傳感器(GPS、壓力和風(fēng)向)及三路模擬電流(4~20mA)接口的傳感器(濕度、溫度和水位)?,F(xiàn)需要將這些數(shù)據(jù)匯總后通過(guò)串口上傳給PC機(jī),并且要求每路信號(hào)數(shù)據(jù)都能夠?qū)崟r(shí)獨(dú)立的接收。
1. 問(wèn)題的提出
某系統(tǒng)中使用了三路串行接口的傳感器(GPS、壓力和風(fēng)向)及三路模擬電流(4~20mA)接口的傳感器(濕度、溫度和水位)?,F(xiàn)需要將這些數(shù)據(jù)匯總后通過(guò)串口上傳給PC機(jī),并且要求每路信號(hào)數(shù)據(jù)都能夠?qū)崟r(shí)獨(dú)立的接收。
2.系統(tǒng)設(shè)計(jì)
經(jīng)過(guò)分析,我們分別使用一塊2051單片機(jī)接收各路串口傳感器的數(shù)據(jù),同時(shí)使用一塊多路高精度ADC對(duì)轉(zhuǎn)換成電壓的溫度等信號(hào)采樣,系統(tǒng)結(jié)構(gòu)圖如圖1所示。主從機(jī)之間的具體管腳連接參見圖2。
圖1.系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)中51單片機(jī)作為主機(jī)控制著整個(gè)系統(tǒng)的動(dòng)作并發(fā)起每次通信,每塊2051作為實(shí)時(shí)從傳感器獲取數(shù)據(jù)并在主機(jī)控制下完成通信。主機(jī)和各從機(jī)之間通過(guò)并口連接通信。主從機(jī)工作流程如下:
· 主機(jī)上電初始化后,通過(guò)P0口發(fā)送從機(jī)地址選中一路從機(jī)并等待應(yīng)答。
· 各從機(jī)上電初始化后接收傳感器串行數(shù)據(jù),然后通過(guò)P1口接收主機(jī)地址,當(dāng)?shù)刂放c自己相符后,調(diào)整245方向并由245向主機(jī)發(fā)送傳感器數(shù)據(jù),此過(guò)程由握手線負(fù)責(zé)控制。
· 從機(jī)發(fā)送完所有數(shù)據(jù)后再次將245方向改為接收,重新開始接收傳感器數(shù)據(jù)和主機(jī)發(fā)送的地址。
· 主機(jī)按照同樣方式接收所有各路2051數(shù)據(jù)。
· 串口數(shù)據(jù)接收完畢后,主機(jī)控制AD轉(zhuǎn)換并獲取三路信號(hào)數(shù)據(jù)。
· 主機(jī)將所有數(shù)據(jù)集合成規(guī)定格式后通過(guò)232發(fā)送給PC機(jī)。
主從機(jī)的工作流程圖如圖3所示:
圖2.主從機(jī)間的管腳連接
圖3.主從機(jī)工作流程圖
主要程序代碼分別如下,主機(jī)為:
……
sbit adc_busy=P3^2;
sbit adc_hben=P3^3;
sbit hand1=P2^0;//GPS
sbit hand2=P2^1;//PRESSURE
sbit hand3=P2^2;//WIND
sbit hand4=P2^3;//BAK1
uchar idata gps[96];
uchar idata pressure[9];
uchar idata wind[26];
uchar idata tem[6];
uchar idata hum[6];
uchar idata water_tem[7];
……
P1=0x01;
for(i=0;i《96;i++){
while(hand1!=0);
gps[i]=P1;
while(hand1==0);
}
sendbyte2pc(’#’);
sendbyte2pc(’#’);
sendbyte2pc(’1’);
sendbyte2pc(’ ’);
sendbyte2pc(’ ’);
send2pc(gps,96);
……
從機(jī)為:
……
sbit dir=P3^2;
sbit en=P3^3;
sbit hand=P3^4;
……
loop:
RI=0;i=0;
while(!RI);//wait for receiving ready
if (SBUF!=0x40)//data head
goto loop;
data_str[i]=0x40;i++;
RI=0;
while(!RI);//wait for receiving ready
if (SBUF!=0x40)//data head
goto loop;
data_str[i]=0x40;i++;
do{
RI=0;
while(!RI);
data_str[i]=SBUF;
i++;
}
while(i!=96);
dir=0;en=0;//enable data receiving P1=0xff;
for(i=0;i《100;i++){
if(P1==0x01)
goto send;
}
en=1;
goto loop;
send:
for(i=0;i《96;i++){
dir=1;
P1=data_str[i];
hand=0;
for(j=0;j《5;j++){;}
hand=1;
}
en=1;dir=0;
goto loop;
……
3.結(jié)語(yǔ)
本文中提出的并行通信方法具有電路結(jié)構(gòu)簡(jiǎn)單清晰、程序容易實(shí)現(xiàn)等特點(diǎn),已經(jīng)在實(shí)際中證明可行。在調(diào)試過(guò)程中可以借用串口助手等軟件接收數(shù)據(jù)來(lái)驗(yàn)證通信的可靠性。
特別推薦
- 兆易創(chuàng)新GD32F30x STL軟件測(cè)試庫(kù)獲得德國(guó)萊茵TüV IEC 61508功能安全認(rèn)證
- 芯科科技第三代無(wú)線開發(fā)平臺(tái)引領(lǐng)物聯(lián)網(wǎng)發(fā)展
- MSO 4B 示波器為工程師帶來(lái)更多臺(tái)式功率分析工具
- 艾為電子推出新一代高線性度GNSS低噪聲放大器——AW15745DNR
- 瑞薩發(fā)布四通道主站IC和傳感器信號(hào)調(diào)節(jié)器, 以推動(dòng)不斷增長(zhǎng)的IO-Link市場(chǎng)
- e絡(luò)盟現(xiàn)貨供應(yīng) Abracon 新推出的 AOTA 系列微型鑄型電感器
- 加賀富儀艾電子推出支持Wi-Fi 6和藍(lán)牙的無(wú)線局域網(wǎng)/藍(lán)牙組合模塊
技術(shù)文章更多>>
- 開關(guān)模式電源問(wèn)題分析及其糾正措施:晶體管時(shí)序和自舉電容問(wèn)題
- 熱電偶的測(cè)溫原理
- 【泰克先進(jìn)半導(dǎo)體實(shí)驗(yàn)室】 遠(yuǎn)山半導(dǎo)體發(fā)布新一代高壓氮化鎵功率器件
- ADALM2000實(shí)驗(yàn):變壓器
- 意法半導(dǎo)體推出STM32微處理器專用高集成度電源管理芯片
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
電容器公式
電聲器件
電位器
電位器接法
電壓表
電壓傳感器
電壓互感器
電源變壓器
電源風(fēng)扇
電源管理
電源管理IC
電源連接器
電源濾波器
電源模塊
電源模塊
電源適配器
電子書
電阻測(cè)試儀
電阻觸控屏
電阻器
電阻作用
調(diào)速開關(guān)
調(diào)諧器
鼎智
動(dòng)力電池
動(dòng)力控制
獨(dú)石電容
端子機(jī)
斷路器
斷路器型號(hào)