《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于C8051F340單片機和CPLD的紅外溫度監測系統的設計
基于C8051F340單片機和CPLD的紅外溫度監測系統的設計
山西電子技術
靳朋飛,張艷花,張 剛
摘要: 系統基本實現了溫度的采集和傳輸功能,并能通過VC6.0將數據保存,提供給matlab等數學分析軟件進行數據分析,實驗證明了利用CPLD可以很精確地實現對傳感器的分時控制,C8051F340利用USBXpress提供的API進行USB開發極大地簡化了開發流程。 實驗只進行了簡單的框架搭建,這里只是對基于CPLD進行時分復用方法采集傳感器數據并且使用C8051F340利用USB總線與計算機進行通信的可行性進行了驗證,完善穩定的系統仍需要大量的后期工作去完成。
Abstract:
Key words :


摘要:為實現對裝藥過程中實時溫度的檢測,設計了一套C8051F340單片機與時分復用技術進行數據采集和通信的多通道溫度采集系統。實驗驗證了CPLD在進行分時控制時具有計時準確,門選電路設計方便,集成度高的優點,同時結合Silicon Laboratories公司提供的USBXpress開發工具使得單片機與計算機的USB通信實現變得極為簡便。
關鍵詞:紅外測溫;時分復用;SOC

0 引言
    螺旋裝藥過程中,經常會因為內部藥品溫度分布不均勻導致在裝藥過程中藥品內出現氣泡的現象,這嚴重影響了彈體內的藥品質量和彈藥參數。因此,本文希望通過設計一種溫度監測系統來實現對腔體內藥品溫度檢測,尋找裝藥過程中溫度與藥品質量之間的關系。由于裝藥機結構的特殊性,我們無法通過傳統的接觸測溫法獲取藥品的溫度。因此本文設計了一種基于紅外測溫方法的系統來實現對藥品溫度的實時檢測。

1 時分復用原理
    復用方法的設計主要依據TN9紅外傳感器的信號特征及接口特點,TN9紅外溫度傳感器具有5個接口,其中電源和地不需要接到CPLD上,其余三個接口分別為低電平有效的TN9工作使能接口,工作在主模式的SPI時鐘接口和數據接口。采用復用模式是只需通過設置合適的時序和門電路控制就可以將這些具有相同功能的接口連接到同一個模塊上。
    實際應用中當EA有效時TN9傳感器通過SPI總線在大約180ms和560ms時發送兩次溫度數據,第一次為環境溫度數據,第二次為目標溫度數據。當EA無效時傳感器仍會發送數據,只不過發送的數據沒有意義,這時就需要通過合適的門電路控制將無用信號屏蔽掉。當采用多路采集通道時,隨著傳感器數量的增加所需引腳及控制門電路會極大增加,處于精確時間控制及多門選電路的需要,數據采集模塊使用CPLD來實現相對單片機加門電路簡單靈活。

a.jpg


    如圖1所示,以雙通道TN9數據接收模塊舉例來說明SPI總線復用方式。EA信號通過分時模塊來控制,由于VHDL語言可以被認為是為CPLD內部邏輯單元建立了連接關系,在系統運行時語句本身并不消耗系統時間,因此通過寄存器設可以是CPLD的時間設置極為精確。這里設置TN9工作周期為1s,400ms時間為高電平(EA禁止),第一個傳感器啟動后約200 ms下一個傳感器以同樣方式開始工作,這樣保證不同傳感器回來的信號不重疊在一起。由于TN9在EA無效期間仍會發送無效數據,且SPI總線上的DATA線與CLK線空閑時為高電平,這里設計了如圖1所示的門控電路來實現對無效信息的屏蔽。

2 系統設計
    系統以C8051F340單片機為核心,它通過UART總線和USB總線分別與CPLD和電腦相連接。

b.jpg


2.1 數據采集模塊設計
    數據采集模塊的核心模塊由CPLD實現,CPLD接收到單片機控制命令后進行復位并開始工作,分時模塊和門電路配合實現傳感器的分時啟動以及屏蔽掉SPI總線發回的環境溫度數據及使能信號無效(高電平)時的亂碼。SPI模塊實現CPLD的從器件接受功能,每次工作將TN9發回的16位溫度數據存入寄存器。寄存器控制模塊在接受完16位溫度數據后,啟動串口發送,將高低8位數據分別發送給單片機,單片機在其中斷函數中進行相應處理。
2.2 單片機模塊設計
    USB數據發送功能的實現是這一部分的難點,這里使用Silicon Laboratories公司提供的USBXpress和Configuration Wizard開發包并結合Keil uVision3開發環境可以很方便的實現C80S1F340單片機的配置工作,這樣單片機程序編寫和USB通信開發難度,我們只需要關注自己要實現的功能部分并不需要很了解復雜的USB通信協議。

c.jpg


    如圖3所示,單片機上電后完成系統初始化配置,初始化配置語句可以使用Configuration Wizard來進行配置,C8051F340的UART0接口(第二功能)固定在P0^4,P0^5,USB也只能使用特定端口,這里不需要對端口進行特別配置,將其端口模式設置為推拉即可,系統時鐘設置為使用內部時鐘模式,通過選擇多路開關和倍頻使USB時鐘工作在48MHz。作為USB系統中的從設備,系統初始化設置完成后,執行等待命令DisplayLED(),然后在中斷函數中根據USB中對要執行的操作進行判斷。
    UART0使用定時器2作為波特率發生器,并使能定時器0中斷允許。USB初始化首先要調用USBXpress提供的API函數USB_Clock_Start(),然后對其端口初始化,這里使用USBXpress提供的默認設置即可。
    由于溫度數據為16位數據,串口每次接收其中8位,這里定義個數組In_Packet[3]后兩位用來存放MSB,LSP的值,第一位存放傳感器標志位。當In_Packet[3]數組數據更新后,調用USBXpress的API函數Block_Write(In_Packet,3)將溫度數據發送給上位機。
2.3 上位機軟件設計
    USBXpress提供VC6.0進行USB通信的動態鏈接庫,這里采取了靜態方法加載動態鏈接庫的形式,這樣需要在編譯選項中把USBXpress提供的SiUSBXp.lib路徑添加進去,并在需要調用時添加頭文件siusbxp.h。
    程序依照USBXpress提供的API函數編寫,在程序界面初始化時調用SI_GetNumDevices()和SI_GetProductString()函數獲取USB器件信息,由于傳感器工作間隔200ms左右,這里設定50ms的定時器,在其響應函數中執行SI_Read(),當Buffer中有數據時就會將數據讀取到定義好結構體當中去,并使用Format命令將其轉換為字符串類型且按16進制方式將數據更新到編輯框中。

d.jpg



3 總結
    系統基本實現了溫度的采集和傳輸功能,并能通過VC6.0將數據保存,提供給matlab等數學分析軟件進行數據分析,實驗證明了利用CPLD可以很精確地實現對傳感器的分時控制,C8051F340利用USBXpress提供的API進行USB開發極大地簡化了開發流程。
    實驗只進行了簡單的框架搭建,這里只是對基于CPLD進行時分復用方法采集傳感器數據并且使用C8051F340利用USB總線與計算機進行通信的可行性進行了驗證,完善穩定的系統仍需要大量的后期工作去完成。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 免费乱理伦片奇优影院 | 国产精品一区高清在线观看 | 国产91久久最新观看地址 | 深夜国产成人福利在线观看女同 | 黄色在线观看www | 在线观看黄色片 | 亚洲成人婷婷 | 国产亚洲新品一区二区 | 欧美人与动人物a级网站 | yy6080午夜论理网 | 黄色片视频在线观看 | 国产无卡一级毛片aaa | 日本精品视频一区 | 成人免费高清 | 亚洲国产成人九九综合 | 日韩理论在线播放 | 欧美国产成人一区二区三区 | 国产成人综合久久精品红 | 国产精品视频免费看 | 亚洲第一视频网 | 日韩成人精品视频 | 中文欧美日韩 | 九九99久麻豆精品视传媒 | 精品亚洲性xxx久久久 | 中文字幕日韩三级 | 免费久草视频 | 波多野结衣 一区 | 免费黄色一级毛片 | 欧美一区色 | 国产成人综合久久亚洲精品 | 国产高清不卡视频在线播放 | 成人看片免费无限观看视频 | 国产成人精品免费久久久久 | 中国一级做a爱片免费 | 最新免费黄色网址 | 亚洲啪啪看看 | 国产欧美日韩综合精品一区二区 | 免费国产午夜高清在线视频 | 69国产成人精品视频软件 | 国产成人免费高清在线观看 | 永久免费视频网站在线观看 |