汪小涵++趙慧娟

摘 要 串口通信是單片機(jī)與外部進(jìn)行數(shù)據(jù)通信的常用方式,本文以智能家居監(jiān)控系統(tǒng)為例,介紹了串口通信方式在該系統(tǒng)中的應(yīng)用。核心控制板接收網(wǎng)絡(luò)指令,將指令進(jìn)行轉(zhuǎn)換后通過(guò)串口通信傳輸至單片機(jī)控制板,單片機(jī)控制板將傳輸過(guò)來(lái)的指令進(jìn)行轉(zhuǎn)換,從而根據(jù)指令控制相應(yīng)的設(shè)備完成相應(yīng)功能。
【關(guān)鍵詞】串口通信 核心控制板 單片機(jī)控制板
1 概述
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,智能家居系統(tǒng)會(huì)逐漸的進(jìn)入家庭,本文提到的智能家居監(jiān)控系統(tǒng)主要包括以下幾個(gè)方面:客戶(hù)端控制軟件、Wi-Fi通信模塊、核心控制板、單片機(jī)控制主板。核心控制板負(fù)責(zé)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的接收與發(fā)送以及采集來(lái)的視頻圖像的輸出,單片機(jī)控制主板負(fù)責(zé)系統(tǒng)的舵機(jī)、電機(jī)、燈光、避障等功能,要建立核心控制主板和單片機(jī)控制板之間的數(shù)據(jù)連接,本文采用了單片機(jī)的串行口來(lái)進(jìn)行數(shù)據(jù)的交換。通過(guò)串口的數(shù)據(jù)交換,單片機(jī)接收了互聯(lián)網(wǎng)的客戶(hù)端軟件發(fā)送的指令,從而實(shí)現(xiàn)對(duì)于家庭中的監(jiān)控系統(tǒng)的移動(dòng)、聚焦、轉(zhuǎn)向、電機(jī)控制、舵機(jī)控制等功能。
2 串口輸入輸出硬件電路
家居監(jiān)控系統(tǒng)的核心控制板上的芯片STM32F407A9與控制板上的單片機(jī)AT89S52進(jìn)行通信是通過(guò) RS232 串口來(lái)實(shí)現(xiàn)的。硬件電路的設(shè)計(jì)來(lái)實(shí)現(xiàn)單片機(jī)的TTL電平和串口的邏輯電平的轉(zhuǎn)換的是MAX232 電平轉(zhuǎn)換芯片。計(jì)算機(jī)COM串口RS232電平邏輯是使用的-5v和+5V,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號(hào)電壓是TTL電平0 表示邏輯0,然而邏輯1用+5v來(lái)表示的,MAX232就是用來(lái)進(jìn)行計(jì)算機(jī)的電平和單片機(jī)之間電平進(jìn)行轉(zhuǎn)換的,該芯片具備一個(gè)DATA發(fā)送端和DATA的接收端,接收器的主要作用是將EIA-232-F電平轉(zhuǎn)換成5V TTL/CMOS電平,發(fā)送器的作用是將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。
3 串口輸入輸出軟件設(shè)計(jì)
本系統(tǒng)采用的是單片機(jī)AT89S52,單片機(jī)控制板主要是通過(guò)串口建立和主控制板的通信,通過(guò)將采集來(lái)的8個(gè)字節(jié)的數(shù)據(jù)進(jìn)行分析,然后控制小車(chē)的前后左右運(yùn)動(dòng)、云臺(tái)的上下左右運(yùn)動(dòng)、以及機(jī)械手臂的各種動(dòng)作。
下面我們以車(chē)燈的開(kāi)和閉為例來(lái)分析一下單片機(jī)控制板的整個(gè)實(shí)現(xiàn)過(guò)程,通過(guò)客戶(hù)端軟件的車(chē)燈的開(kāi)關(guān)按鈕發(fā)送到了主控制板上相應(yīng)的網(wǎng)絡(luò)命令,然后主控制板從Wi-Fi視頻模塊傳輸協(xié)議獲取了7位的16進(jìn)制字符串FF 00 00 09 00 02 0B,這7位字符的含義如下:1起始位;2地址位;3、4云臺(tái)和攝像機(jī)控制位;5、6云臺(tái)水平和垂直速度控制位;7校驗(yàn)位2-6字節(jié)。這個(gè)數(shù)據(jù)的獲取是在主程序的命令ser_receive=SBUF獲取的,通過(guò)如下判斷語(yǔ)句 :
Reg_4=receive_number[3];//-0x30;
Reg_5=receive_number[4];//-0x30;
Reg_6=receive_number[5];//-0x30;
Reg_7=receive_number[6];//-0x30;
完成了數(shù)組的賦值,然后再到串口再賦值程序中根據(jù)如下語(yǔ)句:
if(Reg_4==0x09)
{if(Reg_7==0x0b)comout_temp=91;//comout_temp=91; //燈光開(kāi)
if(Reg_7==0x0a)comout_temp=92;//comout_temp=92;} //雨刷開(kāi)
來(lái)完成變量comout_temp的賦值,最終到控制語(yǔ)句中完成相應(yīng)的控制語(yǔ)句:
case 91:witch_led=1;break;case 93:witch_led=0;break;
根據(jù)電路得出witch_led=1是車(chē)燈亮,witch_led=0是車(chē)燈滅。電機(jī)控制、云臺(tái)控制、機(jī)械手臂控制的機(jī)制都是如此。
下面以小車(chē)的移動(dòng)來(lái)說(shuō)明字符處理程序的功能實(shí)現(xiàn)。字符串處理程序主要處理接收到的字符串進(jìn)行判斷再賦值,本程序中主要定義了以下幾個(gè)變量ucharmovout_temp、ucharcomout_temp、uchar movout2_temp、ucharmovout_four作為數(shù)據(jù)輸出存儲(chǔ)變量,同時(shí)定義了7個(gè)hex數(shù)據(jù)緩存存儲(chǔ)器個(gè)uchar Reg_1,Reg_2,Reg_3,Reg_4,Reg_5,Reg_6,Reg_7來(lái)進(jìn)行數(shù)據(jù)的接收,具體的實(shí)現(xiàn)主要采用if語(yǔ)句進(jìn)行判斷,從而進(jìn)行賦值,比如Reg_4接收到0x08的數(shù)據(jù),則小車(chē)做出向“上”動(dòng)作的程序的流程圖如圖1。
通過(guò)程序和流程圖可以得出本程序主要是根據(jù)串口傳輸過(guò)來(lái)的數(shù)值進(jìn)行變量的再賦值,從而根據(jù)賦值實(shí)現(xiàn)相應(yīng)的功能。
4 小結(jié)
本文主要探討了串口通信在家居監(jiān)控系統(tǒng)中的應(yīng)用,探討了串口通信的硬件和軟件的設(shè)計(jì),尤其是對(duì)于軟件的設(shè)計(jì)提出了一種簡(jiǎn)單可行的思路。
參考文獻(xiàn)
[1]李現(xiàn)勇.Visual C++串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2004.
[2]戚偉.一種基于硬盤(pán)錄像機(jī)的可移動(dòng)家居監(jiān)控系統(tǒng)設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2015(10).
[3]吳桂祥:應(yīng)用于網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的嵌入式視頻采集與GUI設(shè)計(jì).浙江大學(xué) 2007(05).
[4]戚偉.一種帶Wi-Fi功能的視頻處理板的設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2016(06).
作者簡(jiǎn)介
汪小涵 (1982-),女,四川省樂(lè)山市人。學(xué)士學(xué)位。現(xiàn)為九州職業(yè)技術(shù)學(xué)院講師。研究方向?yàn)镋DA技術(shù)、嵌入式技術(shù)。
趙慧娟(1981-),女,江蘇省泰州市人。學(xué)士學(xué)位。現(xiàn)為九州職業(yè)技術(shù)學(xué)院講師。研究方向?yàn)閿?shù)字電子技術(shù)、PLC技術(shù)。
作者單位
九州職業(yè)技術(shù)學(xué)院 江蘇省徐州市 221116