Matlab環(huán)境下PC機(jī)與單片機(jī)的串行通信及數(shù)據(jù)處理
發(fā)布時(shí)間:2007/8/15 0:00:00 訪問(wèn)次數(shù):1422
摘要:結(jié)合單片機(jī)和Matlab兩者的優(yōu)點(diǎn),基于事件驅(qū)動(dòng)的中斷通信機(jī)制,提出一種Matlab環(huán)境下PC機(jī)與單片機(jī)實(shí)時(shí)串行通信及數(shù)據(jù)處理的方法;完成單片機(jī)數(shù)據(jù)采集系統(tǒng)與PC機(jī)的RS-232/RS-485串行通信及其通信數(shù)據(jù)的分析處理、文件存儲(chǔ)、FIR濾波及圖形顯示;簡(jiǎn)化系統(tǒng)開(kāi)發(fā)流程,提高開(kāi)發(fā)效率。該方法已成功應(yīng)用于一個(gè)PIC16F876單片機(jī)應(yīng)用系統(tǒng)實(shí)例之中。
關(guān)鍵詞:PIC16F876 Matlab 串口通信 RS-232 事件驅(qū)動(dòng) 回調(diào)函數(shù)
引言
Matlab是由美國(guó)Mathworks公司開(kāi)發(fā)的面向理論分析研究、工程計(jì)算數(shù)據(jù)處理和緩圖的一套具有強(qiáng)大功能的軟件系統(tǒng)。其中Matlab語(yǔ)言是一種以矩陣為基本運(yùn)算單元的解釋執(zhí)行的高級(jí)語(yǔ)言,編程簡(jiǎn)例,只要幾條語(yǔ)句就能實(shí)現(xiàn)諸如FFT變換、FIR/IIR濾波等數(shù)據(jù)分析處理,易于掌握。從Matlab6.0版本開(kāi)始,Mathworks公司在軟件中增加了設(shè)備控制箱(instrument control toolbox),提供了對(duì)RS-232/RS-485通信標(biāo)準(zhǔn)的串口通信的正式支持。利用該工具箱的serial類及instrcallback()回調(diào)函數(shù),能可靠地進(jìn)行實(shí)時(shí)串地通信。為此,筆者充分結(jié)合單片機(jī)和Matlab的優(yōu)點(diǎn),基于事件驅(qū)動(dòng)的中斷通信機(jī)制,提出了一種Matlab環(huán)境下PC機(jī)與單片機(jī)實(shí)時(shí)串行通信的數(shù)據(jù)處理方法,極大地簡(jiǎn)化開(kāi)發(fā)流程,提高了系統(tǒng)開(kāi)發(fā)效率。另外,與目前普遍采用的基于Matlab查詢方式下的非實(shí)時(shí)串行通信技術(shù)相比,這種方法的實(shí)用性也大大增強(qiáng)了。
1 系統(tǒng)總體設(shè)計(jì)簡(jiǎn)介
下面以Mircochip公司的PIC16F876單片機(jī)為下位機(jī),PC機(jī)為上位機(jī)組成的實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)為例,介紹基于Matlab環(huán)境下PC機(jī)與單片機(jī)串行通信的實(shí)時(shí)數(shù)據(jù)處理方法的實(shí)現(xiàn)。數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。PC機(jī)串口與單片機(jī)USART口通過(guò)MAX232電平轉(zhuǎn)換芯片相連,系統(tǒng)工作時(shí),Matlab通過(guò)調(diào)用設(shè)備控制工具箱中的serial類及相關(guān)函數(shù)。來(lái)創(chuàng)建串口設(shè)備對(duì)象,得到設(shè)備的文件句柄,從而以操作文件的方式實(shí)現(xiàn)對(duì)PC機(jī)串行口的讀寫操作。因而PC機(jī)可以通過(guò)Matlab向串行口發(fā)送特殊指令,PIC單片機(jī)應(yīng)用系統(tǒng)對(duì)此作出相應(yīng)的反應(yīng),將A/D采樣數(shù)據(jù)通過(guò)串行口回送給PC機(jī)。此時(shí),Matlab通過(guò)中斷的方式,實(shí)時(shí)接收單片機(jī)發(fā)送的數(shù)據(jù),并完成對(duì)數(shù)據(jù)的分析處理、文件存儲(chǔ)、FIR濾波及圖形顯示。
2 PIC16F876與PC機(jī)串行通信接口的設(shè)計(jì)
2.1 PIC16F876單片機(jī)串行通信接口的硬件設(shè)計(jì)
PIC16F876微處理器芯片內(nèi)部集成了一個(gè)串行通信(SCI)模塊。該模塊是一個(gè)通用的同步/異步收發(fā)(USART)通信接口。
PIC16F876的SCI通信接口有兩個(gè)外部引腳——RC6/TX(SCI發(fā)送輸出引腳)和RC7/RX(SCI接收輸入引腳),引腳的信號(hào)電平為TTL類型;而PC機(jī)串口的異步串行通信基于RS232標(biāo)準(zhǔn)。兩者通信信號(hào)的邏輯電平不一致,必須進(jìn)行信號(hào)電平轉(zhuǎn)換。為此,在電路中選用Maxim公司的MAX232芯片,以實(shí)現(xiàn)TTL電平與RS-232電平的雙向轉(zhuǎn)換。RS-232通信距離一般以不超過(guò)12m為宜,在工業(yè)控制現(xiàn)場(chǎng)很受限制。為保證硬件設(shè)計(jì)的兼容性和易擴(kuò)展性,能夠應(yīng)用于不同場(chǎng)合,考慮到實(shí)際應(yīng)用的需要,在硬件電路中還可選用一個(gè)MAX491芯片,添加了一個(gè)RS-485通信接口。
如圖2所示,實(shí)際使用過(guò)程中,系統(tǒng)可以根據(jù)需要,靈活使用不同的通信標(biāo)準(zhǔn),十分方便。當(dāng)PIC單片機(jī)SCI通信接口引腳直接通過(guò)MAX232芯片與PC機(jī)串口相連時(shí),系統(tǒng)采用RS-232的通信標(biāo)準(zhǔn);當(dāng)PIC單片機(jī)SCI通信接口口引腳與MAX489芯片的DI、RO引腳相連時(shí),系統(tǒng)采用RS-485的通信標(biāo)準(zhǔn)。另外,還可通過(guò)PIC單片機(jī)控制MAX489芯片的DE、RE引腳,隨時(shí)使能或屏蔽掉MAX489的數(shù)據(jù)接收和數(shù)據(jù)發(fā)送功能。
2.2 PIC16F876與PC機(jī)串行通信接口的軟件設(shè)計(jì)
本通信系統(tǒng)中規(guī)定的字符格式為:每一幀的數(shù)據(jù)占10位——1位起始位,8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn)位。中間的8位數(shù)據(jù)位即為有效的通信傳輸字節(jié)。雙方的波特率設(shè)置為115.2kb/s,以較高速度進(jìn)行通信。同時(shí),為了增強(qiáng)通信的可靠性、減少通信的誤碼率,在通信過(guò)程中約定了雙方的軟件握手方法。為了不致使通信過(guò)于復(fù)雜,提高通信速度,可以直接將握手信號(hào)0xFF嵌入到數(shù)據(jù)包中。軟件握手協(xié)議規(guī)定如下:PC機(jī)發(fā)送符合握手信號(hào)0xFF給單片機(jī),PIC單片機(jī)接收到的上位機(jī)數(shù)據(jù)若為握手信號(hào)0xFF,則回送兩次A/D采樣數(shù)據(jù)包,并將握手信號(hào)0xFF嵌入到數(shù)據(jù)包作為第一個(gè)數(shù)據(jù),兩次發(fā)送數(shù)據(jù)的時(shí)間間隔為5ms;單片機(jī)接收到的上位機(jī)數(shù)據(jù)若不是握手信號(hào),則繼續(xù)等待。若PC機(jī)接收到的數(shù)據(jù)包的第1個(gè)字節(jié)不是0xFF,則屏棄該數(shù)據(jù)包;若是,則表示握手成功,經(jīng)校驗(yàn)正確后將該數(shù)據(jù)包直接存儲(chǔ)接收,并從中分解有效的A/D采樣數(shù)據(jù)信息。
摘要:結(jié)合單片機(jī)和Matlab兩者的優(yōu)點(diǎn),基于事件驅(qū)動(dòng)的中斷通信機(jī)制,提出一種Matlab環(huán)境下PC機(jī)與單片機(jī)實(shí)時(shí)串行通信及數(shù)據(jù)處理的方法;完成單片機(jī)數(shù)據(jù)采集系統(tǒng)與PC機(jī)的RS-232/RS-485串行通信及其通信數(shù)據(jù)的分析處理、文件存儲(chǔ)、FIR濾波及圖形顯示;簡(jiǎn)化系統(tǒng)開(kāi)發(fā)流程,提高開(kāi)發(fā)效率。該方法已成功應(yīng)用于一個(gè)PIC16F876單片機(jī)應(yīng)用系統(tǒng)實(shí)例之中。
關(guān)鍵詞:PIC16F876 Matlab 串口通信 RS-232 事件驅(qū)動(dòng) 回調(diào)函數(shù)
引言
Matlab是由美國(guó)Mathworks公司開(kāi)發(fā)的面向理論分析研究、工程計(jì)算數(shù)據(jù)處理和緩圖的一套具有強(qiáng)大功能的軟件系統(tǒng)。其中Matlab語(yǔ)言是一種以矩陣為基本運(yùn)算單元的解釋執(zhí)行的高級(jí)語(yǔ)言,編程簡(jiǎn)例,只要幾條語(yǔ)句就能實(shí)現(xiàn)諸如FFT變換、FIR/IIR濾波等數(shù)據(jù)分析處理,易于掌握。從Matlab6.0版本開(kāi)始,Mathworks公司在軟件中增加了設(shè)備控制箱(instrument control toolbox),提供了對(duì)RS-232/RS-485通信標(biāo)準(zhǔn)的串口通信的正式支持。利用該工具箱的serial類及instrcallback()回調(diào)函數(shù),能可靠地進(jìn)行實(shí)時(shí)串地通信。為此,筆者充分結(jié)合單片機(jī)和Matlab的優(yōu)點(diǎn),基于事件驅(qū)動(dòng)的中斷通信機(jī)制,提出了一種Matlab環(huán)境下PC機(jī)與單片機(jī)實(shí)時(shí)串行通信的數(shù)據(jù)處理方法,極大地簡(jiǎn)化開(kāi)發(fā)流程,提高了系統(tǒng)開(kāi)發(fā)效率。另外,與目前普遍采用的基于Matlab查詢方式下的非實(shí)時(shí)串行通信技術(shù)相比,這種方法的實(shí)用性也大大增強(qiáng)了。
1 系統(tǒng)總體設(shè)計(jì)簡(jiǎn)介
下面以Mircochip公司的PIC16F876單片機(jī)為下位機(jī),PC機(jī)為上位機(jī)組成的實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)為例,介紹基于Matlab環(huán)境下PC機(jī)與單片機(jī)串行通信的實(shí)時(shí)數(shù)據(jù)處理方法的實(shí)現(xiàn)。數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。PC機(jī)串口與單片機(jī)USART口通過(guò)MAX232電平轉(zhuǎn)換芯片相連,系統(tǒng)工作時(shí),Matlab通過(guò)調(diào)用設(shè)備控制工具箱中的serial類及相關(guān)函數(shù)。來(lái)創(chuàng)建串口設(shè)備對(duì)象,得到設(shè)備的文件句柄,從而以操作文件的方式實(shí)現(xiàn)對(duì)PC機(jī)串行口的讀寫操作。因而PC機(jī)可以通過(guò)Matlab向串行口發(fā)送特殊指令,PIC單片機(jī)應(yīng)用系統(tǒng)對(duì)此作出相應(yīng)的反應(yīng),將A/D采樣數(shù)據(jù)通過(guò)串行口回送給PC機(jī)。此時(shí),Matlab通過(guò)中斷的方式,實(shí)時(shí)接收單片機(jī)發(fā)送的數(shù)據(jù),并完成對(duì)數(shù)據(jù)的分析處理、文件存儲(chǔ)、FIR濾波及圖形顯示。
2 PIC16F876與PC機(jī)串行通信接口的設(shè)計(jì)
2.1 PIC16F876單片機(jī)串行通信接口的硬件設(shè)計(jì)
PIC16F876微處理器芯片內(nèi)部集成了一個(gè)串行通信(SCI)模塊。該模塊是一個(gè)通用的同步/異步收發(fā)(USART)通信接口。
PIC16F876的SCI通信接口有兩個(gè)外部引腳——RC6/TX(SCI發(fā)送輸出引腳)和RC7/RX(SCI接收輸入引腳),引腳的信號(hào)電平為TTL類型;而PC機(jī)串口的異步串行通信基于RS232標(biāo)準(zhǔn)。兩者通信信號(hào)的邏輯電平不一致,必須進(jìn)行信號(hào)電平轉(zhuǎn)換。為此,在電路中選用Maxim公司的MAX232芯片,以實(shí)現(xiàn)TTL電平與RS-232電平的雙向轉(zhuǎn)換。RS-232通信距離一般以不超過(guò)12m為宜,在工業(yè)控制現(xiàn)場(chǎng)很受限制。為保證硬件設(shè)計(jì)的兼容性和易擴(kuò)展性,能夠應(yīng)用于不同場(chǎng)合,考慮到實(shí)際應(yīng)用的需要,在硬件電路中還可選用一個(gè)MAX491芯片,添加了一個(gè)RS-485通信接口。
如圖2所示,實(shí)際使用過(guò)程中,系統(tǒng)可以根據(jù)需要,靈活使用不同的通信標(biāo)準(zhǔn),十分方便。當(dāng)PIC單片機(jī)SCI通信接口引腳直接通過(guò)MAX232芯片與PC機(jī)串口相連時(shí),系統(tǒng)采用RS-232的通信標(biāo)準(zhǔn);當(dāng)PIC單片機(jī)SCI通信接口口引腳與MAX489芯片的DI、RO引腳相連時(shí),系統(tǒng)采用RS-485的通信標(biāo)準(zhǔn)。另外,還可通過(guò)PIC單片機(jī)控制MAX489芯片的DE、RE引腳,隨時(shí)使能或屏蔽掉MAX489的數(shù)據(jù)接收和數(shù)據(jù)發(fā)送功能。
2.2 PIC16F876與PC機(jī)串行通信接口的軟件設(shè)計(jì)
本通信系統(tǒng)中規(guī)定的字符格式為:每一幀的數(shù)據(jù)占10位——1位起始位,8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn)位。中間的8位數(shù)據(jù)位即為有效的通信傳輸字節(jié)。雙方的波特率設(shè)置為115.2kb/s,以較高速度進(jìn)行通信。同時(shí),為了增強(qiáng)通信的可靠性、減少通信的誤碼率,在通信過(guò)程中約定了雙方的軟件握手方法。為了不致使通信過(guò)于復(fù)雜,提高通信速度,可以直接將握手信號(hào)0xFF嵌入到數(shù)據(jù)包中。軟件握手協(xié)議規(guī)定如下:PC機(jī)發(fā)送符合握手信號(hào)0xFF給單片機(jī),PIC單片機(jī)接收到的上位機(jī)數(shù)據(jù)若為握手信號(hào)0xFF,則回送兩次A/D采樣數(shù)據(jù)包,并將握手信號(hào)0xFF嵌入到數(shù)據(jù)包作為第一個(gè)數(shù)據(jù),兩次發(fā)送數(shù)據(jù)的時(shí)間間隔為5ms;單片機(jī)接收到的上位機(jī)數(shù)據(jù)若不是握手信號(hào),則繼續(xù)等待。若PC機(jī)接收到的數(shù)據(jù)包的第1個(gè)字節(jié)不是0xFF,則屏棄該數(shù)據(jù)包;若是,則表示握手成功,經(jīng)校驗(yàn)正確后將該數(shù)據(jù)包直接存儲(chǔ)接收,并從中分解有效的A/D采樣數(shù)據(jù)信息。
熱門點(diǎn)擊
- 24位模數(shù)轉(zhuǎn)換器AD7713及其應(yīng)用
- 電壓/頻率和頻率/電壓轉(zhuǎn)換器VF320
- 12位并行模/數(shù)轉(zhuǎn)換芯片AD1674及其應(yīng)用
- XILINX新推出的SPARTAN-3E系列
- 廉價(jià)隔離型高精度D/A轉(zhuǎn)換器
- Straix器件在DVB-T調(diào)制器中的應(yīng)用
- 八通道24位微功耗無(wú)延時(shí)△-∑模數(shù)轉(zhuǎn)換LTC
- 一種基于AT89C1051/2051的低成本
- 高性能∑-Δ ADC的原理及應(yīng)用
- 高速A/D轉(zhuǎn)換器TLC5540及其應(yīng)用
推薦技術(shù)資料
- 電動(dòng)吸錫烙鐵
- 用12V/2A的電源為電磁閥和泵供電,F(xiàn)QPF9N50... [詳細(xì)]
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(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)用研究
深圳服務(wù)熱線:13751165337 13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)

深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式