Matlab環境下PC機與單片機的串行通信及數據處理
發布時間:2007/8/15 0:00:00 訪問次數:1406
摘要:結合單片機和Matlab兩者的優點,基于事件驅動的中斷通信機制,提出一種Matlab環境下PC機與單片機實時串行通信及數據處理的方法;完成單片機數據采集系統與PC機的RS-232/RS-485串行通信及其通信數據的分析處理、文件存儲、FIR濾波及圖形顯示;簡化系統開發流程,提高開發效率。該方法已成功應用于一個PIC16F876單片機應用系統實例之中。
關鍵詞:PIC16F876 Matlab 串口通信 RS-232 事件驅動 回調函數
引言
Matlab是由美國Mathworks公司開發的面向理論分析研究、工程計算數據處理和緩圖的一套具有強大功能的軟件系統。其中Matlab語言是一種以矩陣為基本運算單元的解釋執行的高級語言,編程簡例,只要幾條語句就能實現諸如FFT變換、FIR/IIR濾波等數據分析處理,易于掌握。從Matlab6.0版本開始,Mathworks公司在軟件中增加了設備控制箱(instrument control toolbox),提供了對RS-232/RS-485通信標準的串口通信的正式支持。利用該工具箱的serial類及instrcallback()回調函數,能可靠地進行實時串地通信。為此,筆者充分結合單片機和Matlab的優點,基于事件驅動的中斷通信機制,提出了一種Matlab環境下PC機與單片機實時串行通信的數據處理方法,極大地簡化開發流程,提高了系統開發效率。另外,與目前普遍采用的基于Matlab查詢方式下的非實時串行通信技術相比,這種方法的實用性也大大增強了。
1 系統總體設計簡介
下面以Mircochip公司的PIC16F876單片機為下位機,PC機為上位機組成的實時數據采集處理系統為例,介紹基于Matlab環境下PC機與單片機串行通信的實時數據處理方法的實現。數據采集系統的結構框圖如圖1所示。PC機串口與單片機USART口通過MAX232電平轉換芯片相連,系統工作時,Matlab通過調用設備控制工具箱中的serial類及相關函數。來創建串口設備對象,得到設備的文件句柄,從而以操作文件的方式實現對PC機串行口的讀寫操作。因而PC機可以通過Matlab向串行口發送特殊指令,PIC單片機應用系統對此作出相應的反應,將A/D采樣數據通過串行口回送給PC機。此時,Matlab通過中斷的方式,實時接收單片機發送的數據,并完成對數據的分析處理、文件存儲、FIR濾波及圖形顯示。
2 PIC16F876與PC機串行通信接口的設計
2.1 PIC16F876單片機串行通信接口的硬件設計
PIC16F876微處理器芯片內部集成了一個串行通信(SCI)模塊。該模塊是一個通用的同步/異步收發(USART)通信接口。
PIC16F876的SCI通信接口有兩個外部引腳——RC6/TX(SCI發送輸出引腳)和RC7/RX(SCI接收輸入引腳),引腳的信號電平為TTL類型;而PC機串口的異步串行通信基于RS232標準。兩者通信信號的邏輯電平不一致,必須進行信號電平轉換。為此,在電路中選用Maxim公司的MAX232芯片,以實現TTL電平與RS-232電平的雙向轉換。RS-232通信距離一般以不超過12m為宜,在工業控制現場很受限制。為保證硬件設計的兼容性和易擴展性,能夠應用于不同場合,考慮到實際應用的需要,在硬件電路中還可選用一個MAX491芯片,添加了一個RS-485通信接口。
如圖2所示,實際使用過程中,系統可以根據需要,靈活使用不同的通信標準,十分方便。當PIC單片機SCI通信接口引腳直接通過MAX232芯片與PC機串口相連時,系統采用RS-232的通信標準;當PIC單片機SCI通信接口口引腳與MAX489芯片的DI、RO引腳相連時,系統采用RS-485的通信標準。另外,還可通過PIC單片機控制MAX489芯片的DE、RE引腳,隨時使能或屏蔽掉MAX489的數據接收和數據發送功能。
2.2 PIC16F876與PC機串行通信接口的軟件設計
本通信系統中規定的字符格式為:每一幀的數據占10位——1位起始位,8位數據位,1位停止位,無奇偶校驗位。中間的8位數據位即為有效的通信傳輸字節。雙方的波特率設置為115.2kb/s,以較高速度進行通信。同時,為了增強通信的可靠性、減少通信的誤碼率,在通信過程中約定了雙方的軟件握手方法。為了不致使通信過于復雜,提高通信速度,可以直接將握手信號0xFF嵌入到數據包中。軟件握手協議規定如下:PC機發送符合握手信號0xFF給單片機,PIC單片機接收到的上位機數據若為握手信號0xFF,則回送兩次A/D采樣數據包,并將握手信號0xFF嵌入到數據包作為第一個數據,兩次發送數據的時間間隔為5ms;單片機接收到的上位機數據若不是握手信號,則繼續等待。若PC機接收到的數據包的第1個字節不是0xFF,則屏棄該數據包;若是,則表示握手成功,經校驗正確后將該數據包直接存儲接收,并從中分解有效的A/D采樣數據信息。
摘要:結合單片機和Matlab兩者的優點,基于事件驅動的中斷通信機制,提出一種Matlab環境下PC機與單片機實時串行通信及數據處理的方法;完成單片機數據采集系統與PC機的RS-232/RS-485串行通信及其通信數據的分析處理、文件存儲、FIR濾波及圖形顯示;簡化系統開發流程,提高開發效率。該方法已成功應用于一個PIC16F876單片機應用系統實例之中。
關鍵詞:PIC16F876 Matlab 串口通信 RS-232 事件驅動 回調函數
引言
Matlab是由美國Mathworks公司開發的面向理論分析研究、工程計算數據處理和緩圖的一套具有強大功能的軟件系統。其中Matlab語言是一種以矩陣為基本運算單元的解釋執行的高級語言,編程簡例,只要幾條語句就能實現諸如FFT變換、FIR/IIR濾波等數據分析處理,易于掌握。從Matlab6.0版本開始,Mathworks公司在軟件中增加了設備控制箱(instrument control toolbox),提供了對RS-232/RS-485通信標準的串口通信的正式支持。利用該工具箱的serial類及instrcallback()回調函數,能可靠地進行實時串地通信。為此,筆者充分結合單片機和Matlab的優點,基于事件驅動的中斷通信機制,提出了一種Matlab環境下PC機與單片機實時串行通信的數據處理方法,極大地簡化開發流程,提高了系統開發效率。另外,與目前普遍采用的基于Matlab查詢方式下的非實時串行通信技術相比,這種方法的實用性也大大增強了。
1 系統總體設計簡介
下面以Mircochip公司的PIC16F876單片機為下位機,PC機為上位機組成的實時數據采集處理系統為例,介紹基于Matlab環境下PC機與單片機串行通信的實時數據處理方法的實現。數據采集系統的結構框圖如圖1所示。PC機串口與單片機USART口通過MAX232電平轉換芯片相連,系統工作時,Matlab通過調用設備控制工具箱中的serial類及相關函數。來創建串口設備對象,得到設備的文件句柄,從而以操作文件的方式實現對PC機串行口的讀寫操作。因而PC機可以通過Matlab向串行口發送特殊指令,PIC單片機應用系統對此作出相應的反應,將A/D采樣數據通過串行口回送給PC機。此時,Matlab通過中斷的方式,實時接收單片機發送的數據,并完成對數據的分析處理、文件存儲、FIR濾波及圖形顯示。
2 PIC16F876與PC機串行通信接口的設計
2.1 PIC16F876單片機串行通信接口的硬件設計
PIC16F876微處理器芯片內部集成了一個串行通信(SCI)模塊。該模塊是一個通用的同步/異步收發(USART)通信接口。
PIC16F876的SCI通信接口有兩個外部引腳——RC6/TX(SCI發送輸出引腳)和RC7/RX(SCI接收輸入引腳),引腳的信號電平為TTL類型;而PC機串口的異步串行通信基于RS232標準。兩者通信信號的邏輯電平不一致,必須進行信號電平轉換。為此,在電路中選用Maxim公司的MAX232芯片,以實現TTL電平與RS-232電平的雙向轉換。RS-232通信距離一般以不超過12m為宜,在工業控制現場很受限制。為保證硬件設計的兼容性和易擴展性,能夠應用于不同場合,考慮到實際應用的需要,在硬件電路中還可選用一個MAX491芯片,添加了一個RS-485通信接口。
如圖2所示,實際使用過程中,系統可以根據需要,靈活使用不同的通信標準,十分方便。當PIC單片機SCI通信接口引腳直接通過MAX232芯片與PC機串口相連時,系統采用RS-232的通信標準;當PIC單片機SCI通信接口口引腳與MAX489芯片的DI、RO引腳相連時,系統采用RS-485的通信標準。另外,還可通過PIC單片機控制MAX489芯片的DE、RE引腳,隨時使能或屏蔽掉MAX489的數據接收和數據發送功能。
2.2 PIC16F876與PC機串行通信接口的軟件設計
本通信系統中規定的字符格式為:每一幀的數據占10位——1位起始位,8位數據位,1位停止位,無奇偶校驗位。中間的8位數據位即為有效的通信傳輸字節。雙方的波特率設置為115.2kb/s,以較高速度進行通信。同時,為了增強通信的可靠性、減少通信的誤碼率,在通信過程中約定了雙方的軟件握手方法。為了不致使通信過于復雜,提高通信速度,可以直接將握手信號0xFF嵌入到數據包中。軟件握手協議規定如下:PC機發送符合握手信號0xFF給單片機,PIC單片機接收到的上位機數據若為握手信號0xFF,則回送兩次A/D采樣數據包,并將握手信號0xFF嵌入到數據包作為第一個數據,兩次發送數據的時間間隔為5ms;單片機接收到的上位機數據若不是握手信號,則繼續等待。若PC機接收到的數據包的第1個字節不是0xFF,則屏棄該數據包;若是,則表示握手成功,經校驗正確后將該數據包直接存儲接收,并從中分解有效的A/D采樣數據信息。
上一篇:尼康佳能鏡頭標識的含義
深圳服務熱線:13751165337 13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式