基于計(jì)算機(jī)串口的紅外虛擬邏輯分析儀
發(fā)布時(shí)間:2007/9/10 0:00:00 訪問(wèn)次數(shù):2763
摘要:采用用途廣泛的紅外線通信技術(shù)設(shè)計(jì)了一款基于計(jì)算機(jī)串口的紅外邏輯分析儀,介紹其硬件電路原理及上位機(jī)和下位機(jī)(單片機(jī))的軟件設(shè)計(jì)方法。實(shí)現(xiàn)了對(duì)紅外線信號(hào)的可視化分析。
關(guān)鍵詞:串口 紅外通信 虛擬邏輯分析儀
引言
紅外通信技術(shù)是一種點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸協(xié)議,是傳統(tǒng)設(shè)備之間連接線纜的替代技術(shù),是目前國(guó)際上普通采用的一種近程無(wú)線傳輸技術(shù),常用于智能小區(qū)控制系統(tǒng)和電話教學(xué)交互式遠(yuǎn)程控制系統(tǒng)中,但是目前的家電(如空調(diào)、錄像機(jī)、VCD機(jī)等)有各種不同的品牌和型號(hào),其紅外遙控編碼及發(fā)送格式不盡相同。為了能夠用一臺(tái)通用控制器對(duì)多種不同型號(hào)的家電進(jìn)行控制,本文利用功能強(qiáng)大的單片機(jī)和編程軟件VB設(shè)計(jì)了一種基于計(jì)算機(jī)串口的通用型智能紅外邏輯分析儀,它可對(duì)各種電器的紅外遙控器所發(fā)射的控制信號(hào)進(jìn)行識(shí)別、存貯和再現(xiàn)。還可通過(guò)紅外硬件接口識(shí)別出紅外信號(hào)并送入單片機(jī)處理,然后利用VB開發(fā)的虛擬軟件在電腦屏幕上實(shí)時(shí)顯示采集到的紅外信號(hào)波形,便于設(shè)計(jì)人員對(duì)各種調(diào)制方式的紅外信號(hào)進(jìn)行“可視化”的分析與研究。
1 硬件設(shè)計(jì)
1.1 串行通信的基本原理
串行端口本質(zhì)上是計(jì)算機(jī)的CPU和外部串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從CPU經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)被轉(zhuǎn)換為串行的俠。而在接收數(shù)據(jù)時(shí),串行的位則被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。在Windows環(huán)境下,串行端口是Windows系統(tǒng)資源的一部分。如果要使用串口進(jìn)行通信,應(yīng)用程序必須在使用前向操作系統(tǒng)提出使用串口資源的申請(qǐng)(創(chuàng)建并打開串口),然后進(jìn)行相應(yīng)的串口參數(shù)配置,雙方的串口才可進(jìn)行通信,通信完畢后,還必須釋放系統(tǒng)資源(關(guān)閉串口)。串口通信程序的流程如圖1所示。
1.2 89C51的串行口
89C51內(nèi)有一個(gè)全雙工的串行口,它有4種工作方式:方式0,串行接口為移位寄存器I/O方式;方式1,串行接口被控制為8位的異步通信接口,實(shí)際上,此時(shí)傳送一幀住處應(yīng)為10位,其中1位為起始位,8位為數(shù)據(jù)位,1位為停止位,在該方式中,波特率可變;方式2和方式3被定義為9位的異步通信接口,此時(shí)傳送一幀信息為11位,其中1位起始位,8位數(shù)據(jù)位,1位可編程數(shù)據(jù)位,1位停止位,工作方式的選擇由芯片內(nèi)的特殊功能寄存器SCON(串行口控制寄存器)來(lái)設(shè)備。
1.3 接口電路
為了能使單片機(jī)與PC進(jìn)行通信,必須使其遵循相同的通信協(xié)議。由于89C51的串行口輸入/輸出為TTL邏輯電平,高電平為3.8V左右,低電平為0.3V左右,因而這種以TTL電平傳送數(shù)據(jù)的方式的抗干擾性較差。而計(jì)算機(jī)內(nèi)部的RS-232C串行口用±12V和-12V電平方式,這種方式中,信號(hào)0和信號(hào)1的電平差別增大,從而增強(qiáng)了抗干擾性。但是,為了解決這種電平不一致的矛盾,必須采用一個(gè)RS-232C電平轉(zhuǎn)換器,文中采用的MAX232自身帶有電源電壓變換器,可把+5V電壓變換成RS-232輸出電平所需的±10V電壓,因而采用這種方式進(jìn)行串行通信具有較好的性能和低廉的價(jià)格。如果通信距離較遠(yuǎn),還可以通過(guò)增加MAX485轉(zhuǎn)換器來(lái)連接MAX232以滿足要求。其硬件接口電路原理如圖2所示。
2 軟件設(shè)計(jì)
2.1 紅外遙控編碼及傳送格式
紅外通信的基本原理是在發(fā)送端將基帶二進(jìn)制信號(hào)調(diào)制為一系列的脈沖串信號(hào),然后通過(guò)紅外發(fā)射管發(fā)射紅外信號(hào)。常用的有通過(guò)脈沖寬度來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈寬調(diào)制(PWM)和通過(guò)脈沖串之間的時(shí)間間隔來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈沖調(diào)制(PPM)兩種方式。本系統(tǒng)采用的是脈時(shí)調(diào)制方法。在調(diào)制脈沖寬度編碼方式下,“0”是由時(shí)間間隔為T的一串38.5kHz載波脈沖后加時(shí)間間隔壁為T0的無(wú)載波脈沖的空閑狀態(tài)來(lái)表示;而“1”是由時(shí)間間隔壁為T的一串38.5kHz載波脈沖后加時(shí)間間隔為T1的無(wú)載波脈沖的空閑狀態(tài)來(lái)表示,其中T1大于T0。
圖2
為了提高抗干擾能力和通訊可靠性,多數(shù)紅外遙控發(fā)射器在發(fā)送二進(jìn)制編碼前要插入各種引導(dǎo)碼,以便接收器識(shí)別。為了區(qū)分不同類型的遙控器,還需要發(fā)送地址碼和校驗(yàn)碼,另外不同遙控器所發(fā)送的碼長(zhǎng)也不相同。一般的傳送格式如圖3所示。
2.2 單片機(jī)的軟件編程
單片機(jī)(下位機(jī))部分的編程主要是完成單片機(jī)和計(jì)算機(jī)之間的串行通訊。該軟件主要由串口初始化子函數(shù)、單片機(jī)內(nèi)部定時(shí)器T0中斷子函數(shù)、紅外信號(hào)發(fā)送子函數(shù)等3大模塊組成。其具體程序如下:
#include>at89x52.h)
#define byte unsigned char
#define WAR_0 P1_1 //定義接收引腳
#define LED_RECEIVE P1_0 //定義指示燈引腳
//晶振 22.1184MHz
//波特率=((xtal/12/t1_over_rate)/32)*2^pcon
byte bdata buffer=0;
sbit way0=buffer^0;
byte i=0;
bit start=0;
void send char(unsigned char word)//串口發(fā)送子函數(shù)
{
TI=0;
SBUF=word;
While(TI==0);
TI=0;
}
void t0_service(viod) interrupt 1 using 1//T0中斷子函數(shù)
{
wa
摘要:采用用途廣泛的紅外線通信技術(shù)設(shè)計(jì)了一款基于計(jì)算機(jī)串口的紅外邏輯分析儀,介紹其硬件電路原理及上位機(jī)和下位機(jī)(單片機(jī))的軟件設(shè)計(jì)方法。實(shí)現(xiàn)了對(duì)紅外線信號(hào)的可視化分析。
關(guān)鍵詞:串口 紅外通信 虛擬邏輯分析儀
引言
紅外通信技術(shù)是一種點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸協(xié)議,是傳統(tǒng)設(shè)備之間連接線纜的替代技術(shù),是目前國(guó)際上普通采用的一種近程無(wú)線傳輸技術(shù),常用于智能小區(qū)控制系統(tǒng)和電話教學(xué)交互式遠(yuǎn)程控制系統(tǒng)中,但是目前的家電(如空調(diào)、錄像機(jī)、VCD機(jī)等)有各種不同的品牌和型號(hào),其紅外遙控編碼及發(fā)送格式不盡相同。為了能夠用一臺(tái)通用控制器對(duì)多種不同型號(hào)的家電進(jìn)行控制,本文利用功能強(qiáng)大的單片機(jī)和編程軟件VB設(shè)計(jì)了一種基于計(jì)算機(jī)串口的通用型智能紅外邏輯分析儀,它可對(duì)各種電器的紅外遙控器所發(fā)射的控制信號(hào)進(jìn)行識(shí)別、存貯和再現(xiàn)。還可通過(guò)紅外硬件接口識(shí)別出紅外信號(hào)并送入單片機(jī)處理,然后利用VB開發(fā)的虛擬軟件在電腦屏幕上實(shí)時(shí)顯示采集到的紅外信號(hào)波形,便于設(shè)計(jì)人員對(duì)各種調(diào)制方式的紅外信號(hào)進(jìn)行“可視化”的分析與研究。
1 硬件設(shè)計(jì)
1.1 串行通信的基本原理
串行端口本質(zhì)上是計(jì)算機(jī)的CPU和外部串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從CPU經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)被轉(zhuǎn)換為串行的俠。而在接收數(shù)據(jù)時(shí),串行的位則被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。在Windows環(huán)境下,串行端口是Windows系統(tǒng)資源的一部分。如果要使用串口進(jìn)行通信,應(yīng)用程序必須在使用前向操作系統(tǒng)提出使用串口資源的申請(qǐng)(創(chuàng)建并打開串口),然后進(jìn)行相應(yīng)的串口參數(shù)配置,雙方的串口才可進(jìn)行通信,通信完畢后,還必須釋放系統(tǒng)資源(關(guān)閉串口)。串口通信程序的流程如圖1所示。
1.2 89C51的串行口
89C51內(nèi)有一個(gè)全雙工的串行口,它有4種工作方式:方式0,串行接口為移位寄存器I/O方式;方式1,串行接口被控制為8位的異步通信接口,實(shí)際上,此時(shí)傳送一幀住處應(yīng)為10位,其中1位為起始位,8位為數(shù)據(jù)位,1位為停止位,在該方式中,波特率可變;方式2和方式3被定義為9位的異步通信接口,此時(shí)傳送一幀信息為11位,其中1位起始位,8位數(shù)據(jù)位,1位可編程數(shù)據(jù)位,1位停止位,工作方式的選擇由芯片內(nèi)的特殊功能寄存器SCON(串行口控制寄存器)來(lái)設(shè)備。
1.3 接口電路
為了能使單片機(jī)與PC進(jìn)行通信,必須使其遵循相同的通信協(xié)議。由于89C51的串行口輸入/輸出為TTL邏輯電平,高電平為3.8V左右,低電平為0.3V左右,因而這種以TTL電平傳送數(shù)據(jù)的方式的抗干擾性較差。而計(jì)算機(jī)內(nèi)部的RS-232C串行口用±12V和-12V電平方式,這種方式中,信號(hào)0和信號(hào)1的電平差別增大,從而增強(qiáng)了抗干擾性。但是,為了解決這種電平不一致的矛盾,必須采用一個(gè)RS-232C電平轉(zhuǎn)換器,文中采用的MAX232自身帶有電源電壓變換器,可把+5V電壓變換成RS-232輸出電平所需的±10V電壓,因而采用這種方式進(jìn)行串行通信具有較好的性能和低廉的價(jià)格。如果通信距離較遠(yuǎn),還可以通過(guò)增加MAX485轉(zhuǎn)換器來(lái)連接MAX232以滿足要求。其硬件接口電路原理如圖2所示。
2 軟件設(shè)計(jì)
2.1 紅外遙控編碼及傳送格式
紅外通信的基本原理是在發(fā)送端將基帶二進(jìn)制信號(hào)調(diào)制為一系列的脈沖串信號(hào),然后通過(guò)紅外發(fā)射管發(fā)射紅外信號(hào)。常用的有通過(guò)脈沖寬度來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈寬調(diào)制(PWM)和通過(guò)脈沖串之間的時(shí)間間隔來(lái)實(shí)現(xiàn)信號(hào)調(diào)制的脈沖調(diào)制(PPM)兩種方式。本系統(tǒng)采用的是脈時(shí)調(diào)制方法。在調(diào)制脈沖寬度編碼方式下,“0”是由時(shí)間間隔為T的一串38.5kHz載波脈沖后加時(shí)間間隔壁為T0的無(wú)載波脈沖的空閑狀態(tài)來(lái)表示;而“1”是由時(shí)間間隔壁為T的一串38.5kHz載波脈沖后加時(shí)間間隔為T1的無(wú)載波脈沖的空閑狀態(tài)來(lái)表示,其中T1大于T0。
圖2
為了提高抗干擾能力和通訊可靠性,多數(shù)紅外遙控發(fā)射器在發(fā)送二進(jìn)制編碼前要插入各種引導(dǎo)碼,以便接收器識(shí)別。為了區(qū)分不同類型的遙控器,還需要發(fā)送地址碼和校驗(yàn)碼,另外不同遙控器所發(fā)送的碼長(zhǎng)也不相同。一般的傳送格式如圖3所示。
2.2 單片機(jī)的軟件編程
單片機(jī)(下位機(jī))部分的編程主要是完成單片機(jī)和計(jì)算機(jī)之間的串行通訊。該軟件主要由串口初始化子函數(shù)、單片機(jī)內(nèi)部定時(shí)器T0中斷子函數(shù)、紅外信號(hào)發(fā)送子函數(shù)等3大模塊組成。其具體程序如下:
#include>at89x52.h)
#define byte unsigned char
#define WAR_0 P1_1 //定義接收引腳
#define LED_RECEIVE P1_0 //定義指示燈引腳
//晶振 22.1184MHz
//波特率=((xtal/12/t1_over_rate)/32)*2^pcon
byte bdata buffer=0;
sbit way0=buffer^0;
byte i=0;
bit start=0;
void send char(unsigned char word)//串口發(fā)送子函數(shù)
{
TI=0;
SBUF=word;
While(TI==0);
TI=0;
}
void t0_service(viod) interrupt 1 using 1//T0中斷子函數(shù)
{
wa
熱門點(diǎn)擊
- TMS320VC5509與CameraLin
- 圖形液晶顯示器和單片機(jī)接口應(yīng)用技術(shù)
- 一款集成HUB的USB設(shè)備控制器的設(shè)計(jì)
- 基于CH365型接口和MCX314As型運(yùn)動(dòng)
- USB電路保護(hù)設(shè)計(jì)方案
- 通過(guò)光纖傳輸U(kuò)SB信號(hào)的電路設(shè)計(jì)及應(yīng)用
- 基于CAN總線的RS-232串口設(shè)備遠(yuǎn)程通信
- 基于計(jì)算機(jī)串口的紅外虛擬邏輯分析儀
- 利用轉(zhuǎn)換器fc232實(shí)現(xiàn)單片機(jī)與微機(jī)的通訊
- 借助新型PSoC器件進(jìn)行USB應(yīng)用設(shè)計(jì)
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究