本文導讀
AWorks作為一個物聯網生態系統,底層需要大量的信號(溫度、電壓、電流……)采集模塊,以實現對外部世界的感知。為此,ZLG致遠電子自主研發了一系列硬件模塊,本文介紹了其中的TPS0xR/T系列溫度檢測模塊和EMM400x系列能效檢測模塊。本文為《面向AWorks框架和接口的編程(上)》第三部分軟件篇——第14章——第1~2小節:溫度檢測模塊——TPS0xR/T和能效檢測模塊EMM400x。
本章導讀
AWorks平臺作為IoT物聯網生態系統,底層需要大量的基礎硬件模塊,以實現對外部世界的感知,如溫度的采集、電壓和電流的采集等等。為此,經過長期的調研、分析和開發,ZLG推出了一系列完全自主研發的通用模塊,主要有:溫度檢測模塊、能效檢測模塊、信號調理模塊等。在實際應用中,這些信號采集模塊都需要通過某種接口(例如: I2C、SPI、UART等)與控制器相連,當應用使用的模塊過多時,MCU控制器本身提供的接口可能不夠,基于此,ZLG還推出了一系列接口擴展模塊,可以實現對MCU接口的擴展。
為了便于使用,使用戶可以快速將模塊應用到實際項目中。ZLG推出的一系列模塊都提供了對應的AWorks驅動,使用戶可以跳過從寄存器開始開發的步驟,直接基于接口使用這些模塊。各類模塊的使用方法類似,因而僅從每一類模塊中選擇一個典型模塊進行介紹,它們的型號分別為:TPS02R(溫度檢測模塊)、EMM400(能效檢測模塊)、TPS08U(信號調理模塊)和
RTM11AT(接口擴展模塊)。
14.1 溫度檢測模塊——TPS0xR/T
TPS0xR/T系列溫度檢測模塊是ZLG致遠電子精心設計的隔離溫度測量模塊。TPS0xR/T包含了一系列型號,型號主要根據通道數目、通信接口(I2C或SPI)以及支持的傳感器類型(PT100熱電阻或熱電偶)進行劃分,選型表詳見表14.1。
表14.1 TPS0xR/T系列熱電阻、熱電偶溫度檢測模塊
表14.2 TPS0xT測溫范圍和精度與熱電偶類型的關系
在AWorks中,TPS0xR/T系列模塊的使用方法都是類似的,本節將以TPS02R模塊為例,講解該系列溫度檢測模塊在AWorks中的使用方法。
14.1.1 TPS02R簡介
TPS02R模塊是一款隔離熱電阻溫度測量模塊。只需接入 PT100 熱電阻,即可完成溫度的采集,采用標準I2C接口直接輸出以℃為單位的溫度數據。模塊內置電氣隔離,保障測量結果不受干擾。采用超小的體積設計,更易于集成到各種測溫設備中。
1. 產品特性
TPS02R主要有以下特性:
兩通道 PT100 熱電阻測量,I2C通信接口;
-200℃ ~ 850℃測溫范圍;
0.01℃測溫分辨率,±(0.02%+0.1℃)測溫誤差;
隔離耐壓 2500VRMS;
工作環境 -40℃ ~ +85℃;
3.3V 供電電壓;
溫度報警輸出;
隔離耐壓 2500VRMS。
2. 引腳分布
TPS02R具有12個外部引腳,其引腳定義見圖14.1,引腳功能描述見表14.3。
圖14.1 TPS02R引腳圖
表14.3 TPS02R引腳功能表
TPS02R的通信接口為標準的I2C接口,主控芯片可以通過I2C總線讀取兩路通道的溫度值。需要特別注意的是,A0(#5)引腳決定了該模塊的7位I2C從機地址。若該引腳接地,則從機地址為0x48;若該引腳連接到VCC或者直接懸空,則從機的地址為0x49。
TPS02R的ALERT引腳為報警信號輸出引腳,ALERT引腳可以與一路溫度值關聯,當該路溫度狀態異常時(超過上限或低于下限溫度值時)報警,以及時通知主控進行處理。
3. 應用電路
TPS02R為兩通道的熱電阻測量模塊,其中RA1、RB1和RC1為通道1的接口,RA2、RB2和RC2為通道2的接口。若用戶只用一個通道,比如通道1,則僅需將通道1的相關引腳(RA1、RB1和RC1)與一路三線制熱電阻 PT100 相連。對于未使用到的通道2,為了避免影響到通道1的采集,應將RA2、RB2和RC2這三個引腳短接起來,詳見圖14.2(a)。也可以使用通道2,而不使用通道1,詳見圖14.2(b)。
圖14.2 單路測溫電路
若用戶使用兩路通道,則相應的應用電路詳見圖14.3。該電路為典型的雙路測溫電路,其中,將RA1、RB1和RC1與一路三線制熱電阻 PT100 相連; 同時將RA2、RB2和RC2與另一路三線制熱電阻 PT100 相連。
注意,在各個典型應用電路中,A0引腳均直接接地,因此,模塊的7位I2C從機地址地址為0x48。
圖14.3 雙路測溫電路
14.1.2 添加TPS02R硬件設備
通過對AWbus-lite的介紹可知,在AWorks中,所有硬件設備均由AWbus-lite統一管理,在使用某一硬件設備前,必須在硬件設備列表(詳見程序清單12.1)中添加該硬件設備。一個硬件設備由struct awbl_devhcf類型的結構體常量進行描述?;仡櫾擃愋偷亩x,詳見程序清單14.1。
程序清單14.1 struct awbl_devhcf類型定義(awbus_lite.h)
1. 設備名
設備名往往與驅動名一致,TPS02R的驅動名在對應的驅動頭文件(awbl_tps02r.h)中定義,詳見程序清單14.2。
程序清單14.2 TPS02R驅動名定義(awbl_tps02r.h)
基于此,設備名應為:AWBL_TPS02R_NAME。
2.設備單元號
設備單元號用于區分系統中幾個相同的硬件設備,它們的設備名一樣,復用同一份驅動。若當前系統僅使用了一個TPS02R模塊,則設置為0即可。
3. 設備父總線的類型
TPS02R的通信接口為I2C,是一種I2C從機器件,其對應的父總線類型為:AWBL_BUSID_I2C。
4. 設備父總線的編號
設備父總線的編號取決于實際硬件中TPS02R的I2C接口與哪條I2C總線相連,每條I2C總線對應的編號在aw_prj_params.h文件中定義,例如,在i.MX28x硬件平臺中,默認有3條I2C總線:硬件I2C0、I2C1和GPIO模擬I2C,它們對應的總線編號分別為0、1、2。詳見程序清單14.3。
程序清單 14.3 I2C總線編號定義
若TPS02R連接在GPIO模擬I2C0上,則該設備的父總線編號為:GPIO_I2C0_BUSID。
5. 設備實例
在awbl_tps02r.h文件中,定義了TPS02R的設備類型為:struct awbl_tps02r_dev。基于該類型,可以定義一個設備實例,詳見程序清單14.4。
程序清單14.4 定義TPS02R設備實例
其中,__g_tps02r_dev_0的地址即可作為p_dev的值。
6. 設備信息
在awbl_tps02r.h文件中,定義了TPS02R的設備信息類型為:struct awbl_tps02r_devinfo,其定義詳見程序清單14.5。
程序清單14.5 struct awbl_tps02r_devinfo定義
其中,start_id表示為TPS02R設備分配的傳感器通道起始id。為了區分各個傳感器通道,需要為每個通道分配一個id。對于特定的傳感器,其可以為系統提供的傳感器通道數是固定不變的,例如,TPS02R可以為系統提供2路溫度傳感器通道:PT100通道1和PT100通道2。為了簡單起見,用戶僅需提供一個通道起始id,其它通道按順序依次進行編號,TPS02R的2路溫度通道ID即為start_id和(start_id+1),若start_id為1,則TPS02R兩個通道占用的ID即為1和2。通道ID用于區分系統中所有的傳感器通道,不同傳感器設備占用的傳感器通道必須不同。為了便于傳感器通道id的管理,避免重復分配,統一將設備提供的一系列傳感器通道的起始id定義在
aw_pri_params.h文件中,例如,TPS02R提供的2路傳感器通道的起始id可以定義為:
基于此,start_id的值可以設置為
SENSOR_TPS02R_0_START_ID,后續若需修改起始id,僅需修改對應的宏值即可。
alert_pin表示與TPS02R的ALERT引腳相連接的主控引腳號。TPS02R具有溫度報警輸出功能, ALERT引腳可以與某一路溫度關聯,當該路溫度超過上限溫度值或低于下限溫度值時,TPS02R將通過ALERT引腳通知主控,以便使主控可以及時處理報警事件。若使用i.MX28x的PIO2_14與TPS02R的ALERT引腳相連,則alert_pin的值應設置為PIO2_14。特別地,若用戶不需要使用報警功能,則只需將alert_pin設置為-1即可。
i2c_addr表示TPS02R的7位I2C從機地址。該值跟具體的應用電路有關,在典型應用電路中, TPS02R的A0引腳與GND想連接,因此,若直接使用典型應用電路,則從機地址為0x48,此時,將i2c_addr設置為0x48即可。
基于以上信息,可以定義完整的設備信息,范例詳見程序清單14.6。
程序清單14.6 TPS02R設備信息定義范例
綜合上述設備名、設備單元號、父總線類型、父總線編號、設備實例和設備信息,可以完成一個TPS02R硬件設備的描述,其定義詳見程序清單14.7。
程序清單14.7 TPS02R硬件設備宏的詳細定義(awbl_hwconf_tps02r_0.h)
其中,定義了硬件設備宏:
AWBL_HWCONF_TPS02R_0,為便于裁剪,使用了一個使能宏AW_DEV_EXTEND_TPS02R_0對其具體內容進行了控制,僅當使能宏被有效定義時,AWBL_HWCONF_TPS02R_0才表示一個有效的硬件設備。在硬件設備列表中,加入該宏即可完成設備的添加,詳見程序清單14.8。
程序清單14.8 在硬件設備列表中添加設備
實際上,在模板工程的硬件設備列表中,
AWBL_HWCONF_TPS02R_0宏默認已添加,同時,定義該宏的文件
(awbl_hwconf_tps02r_0.h)也以配置模板的形式提供在模板工程中,無需用戶從零開始自行開發。
14.1.3 使用TPS02R模塊
TPS02R可以采集兩路溫度,因而可以為系統提供兩路溫度傳感器通道。在添加TPS02R設備時,將TPS02R提供的傳感器通道的起始id定義為:SENSOR_TPS02R_0_START_ID,該值默認為1,由此可見,TPS02R為系統提供的傳感器通道資源詳見表14.4。
表14.4 TPS02R為系統提供的傳感器通道資源
基于此,應用程序即可使用“通用傳感器接口”(詳見表6.6)操作id為1和 2的傳感器通道,從這些通道中獲取溫度值。例如,每隔一秒讀取TPS02R通道1(id為1)或通道2(id為2) 的溫度數據,并將溫度值通過串口打印出來。范例程序詳見程序清單14.9。
程序清單14.9 使用TPS02R的范例程序
由于TPS02R 精度可達到0.000122℃,因此,在打印溫度時,顯示了6位小數,為便于打印顯示,打印前將溫度單位轉換為了
AW_SENSOR_UNIT_MICRO(即:-6)。
14.2 能效檢測模塊——EMM400x
EMM400x是ZLG致遠電子精心設計的系列能效檢測模塊。EMM400x包含了一系列型號,型號主要根據通道數目進行劃分,選型表詳見表14.5。
表14.5 EMM400x系列能效檢測模塊選型表
在AWorks中,EMM400x系列模塊的使用方法都是類似的,本節將以EMM400A模塊為例,講解該系列能效檢測模塊在AWorks中的使用方法。
14.2.1 EMM400A簡介
EMM400A是ZLG致遠電子針對板級電路推出的能效管理模塊,集電量測量單元、DC-DC隔離電源、通訊信號隔離電路于一體,可獨立完成市電電壓、電流、有功功率和電能的測量,使主設備對用電設備做出有效管控。精度高達2%,內置2500V電器隔離電路,可有效隔離市電與板內弱電。該模塊采用超小體積設計,在保證PCB緊湊型的同時,為用戶提供最便捷的能效管理方案。該產品無需外圍元器件,使用方便,接法簡單。通訊方式使用的單串口通信,用戶只需要接收數據,不需要發送數據以操作模塊寄存器,大大節省了程序使用資源。
1. 產品特性
免校準單相電能計量;
數據傳輸方式:串口,波特率4800bps;
有效輸入電壓:80~260Vrms,精度2%;
有效輸入電流:0.010~1.5Arms,精度2%;
輸入有功功率:0.8~390W,精度 2%,絕對誤差0.06W;
隔離耐壓 2500VDC;
工作溫度:-40℃~+85℃。
圖14.4 EMM400A引腳定義
2. 引腳分布
EMM400為DIP-6封裝,其引腳定義見圖14.4,引腳功能描述見表14.6。
表14.6 EMM400A引腳功能描述
3. 應用電路
EMM400A外部接線詳見圖14.5。無需外圍元器件,只需按照推薦電路進行接線:1腳接電網的零線,2腳接負載的低端,4腳接電網的火線;6腳接單片機的數字地,7腳接MCU的RX接收引腳,8腳接3.3V電源輸入。
圖14.5 EMM400A外圍電路接法
在該推薦電路的使用中,外部電路的搭接應注意高壓側的布線安全,在高壓線的高端和低端最好應滿足EN60950上推薦電氣間隙,即至少距離3mm;同時,PCB線路應設計得盡量寬、盡量短,使得線路阻抗盡量小,減小線損。
4. 通訊方式說明
EMM400作為單相多功能計量模塊,其自身提供高頻脈沖用于電能計量。EMM400使用串口進行通訊,用戶可以通過串口直接讀取電壓、電流、有功功率的相關計算參數如校準系數、信號周期等。
串口相關參數固定為: 4800bps,8位數據位,1位偶校驗,1位停止位。EMM400上電后,每隔50ms自動將包含電壓系數、電壓周期、電流系數、電流周期、功率系數、功率周期、校準次數、CF脈沖個數的數據包通過串口發送出去。一個數據包固定為24字節,數據包格式詳見表14.7。
表14.7 EMM400數據包格式
獲取到各個數據后,即可通過公式計算出電流、電壓、視在功率、有功功率、無功功率、電量等數據。各計算公式及說明詳見表14.8。
表14.8 EMM400相關數據計算公式
上述通訊協議和計算公式僅供了解,在實際應用中,AWorks已經提供了EMM400的驅動,無需用戶通過串口獲取各個計算參數再代入公式中運算,用戶可以直接使用通用傳感器接口獲取電流、電壓、視在功率、有功功率、無功功率、電量等數據。
14.2.2 添加EMM400硬件設備
在AWorks中,硬件設備由AWBus-lite統一管理,向AWBus-lite中添加一個硬件設備需要確認6點信息:設備名、設備單元號、父總線類型、父總線編號、設備實例和設備信息。
1. 設備名
設備名往往與驅動名一致,EMM400驅動名在EMM400的驅動頭文件(awbl_emm400.h)中定義,詳見程序清單14.10。
程序清單14.10 EMM400驅動名定義(awbl_emm400.h)
基于此,設備名應為:
AWBL_EMM400_NAME。
2. 設備單元號
設備單元號用于區分系統中幾個相同的硬件設備,它們的設備名一樣,復用同一份驅動。若系統僅使用了一個EMM400,則設置為0即可。
3. 設備父總線的類型
EMM400模塊需要通過串口通信,在當前系統中,串口僅作為簡單的數據傳輸模塊,并沒有視為一個獨立的總線類型,因而EMM400視為由CPU直接控制,掛在PLB總線上。基于此,bus_type的值為AWBL_BUSID_PLB。
4. 設備父總線的編號
EMM400設備掛在PLB總線上,系統僅有一條PLB總線, bus_index的值只能為0。
5. 設備實例
在awbl_emm400.h文件中,定義了EMM400的設備類型為:struct awbl_emm400_dev?;谠擃愋?,可以定義一個設備實例,詳見程序清單14.11。
程序清單14.11 定義EMM400設備實例
其中,__g_emm400_dev0的地址即可作為p_dev的值。
6. 設備信息
設備信息的具體類型是由設備驅動定義的。在awbl_emm400.h文件中,定義了EMM400的設備信息類型為:awbl_emm400_devinfo_t,其定義詳見程序清單14.12。
程序清單14.12 設備信息類型(awbl_emm400.h)
其中,start_id表示為EMM400A設備分配的傳感器通道起始id。EMM400可以為系統提供6路的傳感器通道, 它們按順序分別用于獲取電壓有效值、電流有效值、視在功率、有功功率、無功功率和用電量。起始id標識了6個通道的起始id,EMM400占用的id范圍即為:start_id ~ (start_id + 6 - 1)。例如,start_id為3,則占用的id范圍為:3 ~ 8。為了便于傳感器通道id的管理,統一將設備提供的一系列傳感器通道的起始id在aw_pri_params.h中定義,例如,EMM400提供的6路傳感器通道的起始id可以定義為:
基于此,start_id的值可以設置為
SENSOR_EMM400_0_START_ID,后續若需修改起始id,僅需修改對應的宏值即可。
com_id為與EMM400模塊通信的的串口號,可用串口號與具體使用的硬件平臺相關,在aw_prj_params.h文件中定義。例如,在i.MX28x硬件平臺中,支持6個串口,包括一個調試串口和5個應用串口,它們的串口號定義詳見程序清單14.13。
程序清單14.13 串口號定義
若使用AUART0與EMM400通信,則com_id的值為IMX28_AUART0_COMID。
至此,可以定義完整的設備信息,范例詳見程序清單14.14。
程序清單14.14 EMM400設備信息定義范例
綜合上述設備名、設備單元號、父總線類型、父總線編號、設備實例和設備信息,可以可以完成一個EMM400硬件設備的描述,其定義詳見程序清單14.15。
程序清單14.15 EMM400硬件設備宏的詳細定義(awbl_hwconf_emm400_0.h)
其中,定義了硬件設備宏:
AWBL_HWCONF_EMM400_0,為便于裁剪,使用了一個使能宏AW_DEV_EXTEND_EMM400_0對其具體內容進行了控制,僅當使能宏被有效定義時,AWBL_HWCONF_EMM400_0才表示一個有效的硬件設備。在硬件設備列表中,加入該宏即可完成設備的添加,詳見程序清單14.16。
程序清單14.16 在硬件設備列表中添加設備
實際上,在模板工程的硬件設備列表中,
AWBL_HWCONF_EMM400_0宏默認已添加,同時,定義該宏的文件
(awbl_hwconf_emm400_0.h)也以配置模板的形式提供在模板工程中,無需用戶從零開始自行開發。
14.2.3 使用EMM400模塊
EMM400可以采集6路傳感器信號:電壓有效值、電流有效值、視在功率、有功功率、無功功率和用電量。在添加EMM400設備時,將EMM400提供的傳感器通道的起始id定義為:SENSOR_EMM400_0_START_ID,該值默認為3,由此可見,EMM400為系統提供的傳感器通道資源詳見表14.9。
表14.9 EMM400為系統提供的傳感器通道資源
基于此,應用程序即可使用“通用傳感器接口”(詳見表6.6)操作id為3 ~ 8的傳感器通道,從這些通道中獲取相應的傳感器值。例如,每隔一秒打印一次所有通道的值,范例程序詳見程序清單14.17。
程序清單14.17 使用EMM400的范例程序
-
溫度檢測
+關注
關注
5文章
110瀏覽量
23780 -
接口編程
+關注
關注
0文章
9瀏覽量
8796 -
AWorks
+關注
關注
1文章
16瀏覽量
5842
原文標題:AWorks軟件篇 — 溫度和能效檢測模塊
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
新書速遞:周立功教授心血新力作《面向AMetal框架與接口的編程(上)》
【下載】新書速遞:周立功教授心血新力作《面向AMetal框架與接口的編程(上)》
串行接口技術的詳細資料概述

評論