国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于NFC 無線通信的電子設(shè)備非實(shí)時維護(hù)系統(tǒng)*

2021-02-22 02:38:14段學(xué)松劉童瑤繆程澳曲中水
科技創(chuàng)新與應(yīng)用 2021年8期
關(guān)鍵詞:電子設(shè)備字節(jié)藍(lán)牙

段學(xué)松,劉童瑤,繆程澳,曲中水

(哈爾濱理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱150080)

1 概述

近場通信(Near Field Communication,NFC)作為一種由RFID 技術(shù)演變而來新興的技術(shù),可以在彼此靠近的情況下低功耗進(jìn)行數(shù)據(jù)交換。利用NFC 配合藍(lán)牙無線傳輸技術(shù)實(shí)現(xiàn)對電子設(shè)備的非實(shí)時非在線維護(hù)是一種新的數(shù)據(jù)維護(hù)方式,具有較高的工程應(yīng)用價值。

2 傳統(tǒng)的電子設(shè)備數(shù)據(jù)維護(hù)方法概述

2.1 空中下載技術(shù)

空中下載技術(shù)(Over The Air Technology,OTA)是一種無線升級技術(shù),常用于Android 手機(jī)等嵌入式設(shè)備的系統(tǒng)升級上。首先通過運(yùn)營商提供的數(shù)據(jù)流量或者Wifi等方式把系統(tǒng)升級包下載至本地手機(jī),然后通過解壓縮系統(tǒng)升級包到特定目錄來修復(fù)設(shè)備或者更新系統(tǒng)。

2.2 ISP 在系統(tǒng)編程技術(shù)

隨著科技的發(fā)展,越來越多的嵌入式設(shè)備都支持ISP(In System Programing)在系統(tǒng)編程技術(shù)。ISP 技術(shù)能夠做到無需取下電路板上的器件的情況下對器件編程。ISP 技術(shù)一般由上位機(jī)以有線的方式對下位機(jī)的器件進(jìn)行編程,因此需要在設(shè)計(jì)電路的時候預(yù)留相關(guān)的接口。ISP 技術(shù)無論是在各種單片機(jī)還是在FPGA 上都有比較廣泛地應(yīng)用。

3 NFC P2P 傳輸協(xié)議分析

NFC 用于P2P 數(shù)據(jù)交換時,采用的是簡單NDEF 交換協(xié)議(simple NDEF exchange protocol,SNEP)[1]。兩個NFC 設(shè)備進(jìn)行通信前,要把數(shù)據(jù)封裝為NDEF 格式[1],才能通過SNEP 協(xié)議進(jìn)行通信。

4 基于NFC 的電子設(shè)備非實(shí)時維護(hù)系統(tǒng)設(shè)計(jì)以及實(shí)現(xiàn)

整個系統(tǒng)由硬件系統(tǒng)與軟件系統(tǒng)兩部分組成。

4.1 硬件系統(tǒng)設(shè)計(jì)

硬件系統(tǒng)的主控板采用ARM 公司的STM32 開發(fā)板,但是考慮到不同的電子設(shè)備的功耗要求以及數(shù)據(jù)修改量,硬件系統(tǒng)分為兩種方案來實(shí)現(xiàn)。

4.1.1 針對功耗要求苛刻、少量數(shù)據(jù)修改的電子設(shè)備的硬件系統(tǒng)實(shí)現(xiàn)方案(方案一)

電子設(shè)備對功耗要求比較苛刻,而對數(shù)據(jù)僅有少量的修改的情況比較常見,對于這種情況,數(shù)據(jù)傳輸應(yīng)當(dāng)選擇傳輸功耗較低,數(shù)據(jù)傳輸速度也很低的NFC 模塊PN532 作為數(shù)據(jù)傳輸控制的硬件設(shè)備。硬件系統(tǒng)通過數(shù)據(jù)維護(hù)接口實(shí)現(xiàn)對電子設(shè)備內(nèi)存儲設(shè)備進(jìn)行修改,實(shí)現(xiàn)無線數(shù)據(jù)維護(hù)的功能。由于對傳輸?shù)乃俾室筝^低,因此用單片機(jī)的片內(nèi)RAM 即可實(shí)現(xiàn)數(shù)據(jù)的臨時存儲,無需采用多余的存儲模塊,降低了成本。

4.1.2 針對功耗要求不高、大量數(shù)據(jù)修改的電子設(shè)備的硬件系統(tǒng)實(shí)現(xiàn)方案(方案二)

當(dāng)電子設(shè)備對功耗要求不是十分嚴(yán)格時,為了提高傳輸效率,達(dá)到功耗與數(shù)據(jù)傳輸速率的平衡,采用藍(lán)牙實(shí)現(xiàn)無線數(shù)據(jù)傳輸,通過把藍(lán)牙的配置信息以及配對PIN寫入NFC 標(biāo)簽的方式加速藍(lán)牙連接,實(shí)現(xiàn)NFC 技術(shù)與藍(lán)牙技術(shù)融合[2]。藍(lán)牙模塊采用HC05[5]藍(lán)牙模塊。硬件系統(tǒng)同樣通過數(shù)據(jù)維護(hù)接口實(shí)現(xiàn)對電子設(shè)備內(nèi)存儲設(shè)備進(jìn)行修改。當(dāng)需要大量的數(shù)據(jù)修改時,需要用存儲設(shè)備作為緩沖區(qū)來臨時存儲接收到的數(shù)據(jù)??紤]到價格以及可拓展性等因素,采用SD 卡作為數(shù)據(jù)緩沖區(qū),上位機(jī)通過掃描帶有藍(lán)牙配對信息的NFC 標(biāo)簽并獲得藍(lán)牙HC05 模塊的配置信息以及配對的PIN 后,直接連接到HC05 模塊,與上位機(jī)通信收到的數(shù)據(jù)都會先被臨時存儲到SD卡內(nèi),通過數(shù)據(jù)維護(hù)接口寫入要維護(hù)的電子設(shè)備中。

圖1 MMHF 的協(xié)議規(guī)范

圖2 Android 讀取NFC 標(biāo)簽和NFCP2P 通信的樣例代碼

4.2 硬件系統(tǒng)與上位機(jī)的通信協(xié)議

4.2.1 NFC 傳輸協(xié)議定義

上位機(jī)主要通過NFC 實(shí)現(xiàn)與下位機(jī)的數(shù)據(jù)交互??紤]到NFC 傳輸速度較慢,同時為了方便發(fā)送和接受數(shù)據(jù)包,可以把NDEF 協(xié)議再一次封裝為MMHF(Memory Maintenance Hex File)協(xié)議。該協(xié)議是適用于本系統(tǒng)手機(jī)到下位機(jī)數(shù)據(jù)傳輸?shù)膶S脜f(xié)議。下位機(jī)可根據(jù)本協(xié)議的修改記錄對EEPROM 修改指定地址的數(shù)據(jù)。MMHF 的協(xié)議規(guī)范如圖1 所示。

MMHF 的協(xié)議字段具體含義如下:

Header (4Byte):大小為4 字節(jié)的固定字符串“MMHF”,是識別傳輸協(xié)議的頭部。

Type(6Byte):大小為6Byte 用來記錄的是下位機(jī)存儲芯片的型號的字符串。

Check(16Byte):大小為16Byte 的字符串,是一個校驗(yàn)碼,用于確保和驗(yàn)證該數(shù)據(jù)是維護(hù)人員發(fā)出的,增加了一定安全性,該值由開發(fā)人員自主設(shè)定,如果下位機(jī)校驗(yàn)Check 字段不是設(shè)定的值,會把發(fā)來的數(shù)據(jù)丟棄。

BodyCnt(1Byte):BodyCnt 是一個大小為1Byte 數(shù),記錄了需要傳輸?shù)拇螖?shù)。

Body(大小不固定):多條修改記錄的集合,其大小不固定。

AllRecordSize(1Byte):大小為1Byte 的數(shù),記錄所在的Body 中修改記錄的總字節(jié)大小。由于下位機(jī)數(shù)據(jù)存儲大小有限,因此單次傳輸一個Body 中的所有修改記錄的總大小不能超過115B。Android 解析本文件的時候會檢查記錄的總大小,如果超過115B 會報(bào)錯。

RecordCnt(1Byte):大小為8bit 的數(shù),記錄的是本文件中修改記錄的數(shù)量。

Record(大小不固定):一條EEPROM 的修改記錄,包含地址和數(shù)據(jù)。

4.2.2 藍(lán)牙傳輸協(xié)議定義

上位機(jī)主要通過藍(lán)牙來實(shí)現(xiàn)與下位機(jī)的數(shù)據(jù)交互,為了方便接收和發(fā)送數(shù)據(jù)包,可以在藍(lán)牙SSP 協(xié)議的基礎(chǔ)上,繼續(xù)封裝協(xié)議,命名為SSP+協(xié)議。協(xié)議分為6 段。其中,START1 段為一個字節(jié)大小的固定16 進(jìn)制數(shù):0x0A,START2 段為一個字節(jié)大小的固定16 進(jìn)制數(shù)0xFA,這兩個字節(jié)作為數(shù)據(jù)包的包頭,用來識別數(shù)據(jù)包是基于SSP+協(xié)議的。

圖3 通過MAC 地址直接連接已經(jīng)配對的藍(lán)牙設(shè)備樣例程序代碼

Count 段大小是一個兩個字節(jié),表示要接收的字節(jié)流的長度。Data[]段大小為Count 字節(jié),表示數(shù)據(jù)傳輸?shù)恼鎸?shí)數(shù)據(jù)。END1 段是一個字節(jié)大小的固定16 進(jìn)制數(shù)0x00,END2 段是一個字節(jié)大小的固定16 進(jìn)制數(shù)0x0B,這兩個字節(jié)作為數(shù)據(jù)包的包尾,用來作為識別數(shù)據(jù)包結(jié)束。

4.3 上位機(jī)軟件系統(tǒng)設(shè)計(jì)

Android[6]是一套真正意義上的開發(fā)性的移動設(shè)備綜合平臺,它包括操作系統(tǒng)、中間件和一些關(guān)鍵的平臺應(yīng)用。安卓系統(tǒng)具有開放性、豐富的硬件、大量的開發(fā)商等特點(diǎn)。安卓系統(tǒng)是開放免費(fèi)的,并且Android 手機(jī)本身普遍具有NFC 和藍(lán)牙兩種功能,因此上位機(jī)采用Android系統(tǒng)的智能手機(jī)來實(shí)現(xiàn)比較合適。

4.3.1 Android 下NFC 通信[3]的實(shí)現(xiàn)

Android 中用NdefMessage 和NdefRecord 兩個類來表示NFC 標(biāo)簽中的信息。NFC 標(biāo)簽的識別實(shí)時過程是由硬件實(shí)現(xiàn)的,當(dāng)硬件發(fā)現(xiàn)有NFC 標(biāo)簽的時候,會對已經(jīng)注冊NFC 權(quán)限[3]的Activity 產(chǎn)生一個onNewIntent()的調(diào)用。在Android 系統(tǒng)中用SNEP 協(xié)議實(shí)現(xiàn)兩個NFC 設(shè)備的通信,要用到兩個API 接口,分別是當(dāng)與支持NFCP2P的設(shè)備接觸時,發(fā)送含有多個NFC 標(biāo)簽的消息到設(shè)備的setNdefPushMessage()和產(chǎn)生一個消息發(fā)送成功回調(diào)的setNdefPushMessageCallback()。Android 利用NFC 通信的代碼如圖2 所示。

4.3.2 Android 下藍(lán)牙通信[4]的實(shí)現(xiàn)

Android 同樣也采用適配器管理類來操作藍(lán)牙設(shè)備。獲取藍(lán)牙適配器,同樣僅需一行語句:BluetoothAdaptermBluet oothAdapter=BluetoothAdapter.getDefaultAdapter(this)。得到適配器之后通過BluetoothDevice 類來獲得藍(lán)牙設(shè)備。藍(lán)牙通信與NFC 不同的是,藍(lán)牙通信需要建立連接,因此藍(lán)牙有專用的BluetoothSocket 類。代碼如圖3 所示。

5 結(jié)束語

本文設(shè)計(jì)基于NFC 無線通信的電子設(shè)備非實(shí)時維護(hù)系統(tǒng),該系統(tǒng)是一種具有實(shí)用價值的創(chuàng)新性的系統(tǒng)維護(hù)方式,利用現(xiàn)代移動設(shè)備的便利性、普及性,對于非聯(lián)網(wǎng)設(shè)備的維護(hù)給出了一種新的解決方案,不僅節(jié)省了設(shè)備異地維護(hù)過程的人力物力,也提高了解決問題的效率。

猜你喜歡
電子設(shè)備字節(jié)藍(lán)牙
有機(jī)硅灌封材料對計(jì)控電子設(shè)備的保護(hù)應(yīng)用
山東冶金(2022年4期)2022-09-14 09:00:20
藍(lán)牙音箱的直線之美
某型機(jī)載敏感電子設(shè)備電磁干擾抑制技術(shù)研究
No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
No.10 “字節(jié)跳動手機(jī)”要來了?
簡單、易用,可玩性強(qiáng)Q AcousticsBT3藍(lán)牙音箱
適合自己的才是最好的 德生(TECSUN) BT-50藍(lán)牙耳機(jī)放大器
探析現(xiàn)代醫(yī)用電子設(shè)備的維修
電子測試(2017年15期)2017-12-18 07:19:55
簡談MC7字節(jié)碼
緊急:藍(lán)牙指尖陀螺自燃!安全隱患頻出
玩具世界(2017年8期)2017-02-06 03:01:38
马鞍山市| 瑞金市| 犍为县| 崇明县| 涡阳县| 安西县| 景泰县| 台中县| 巫山县| 定州市| 武山县| 化州市| 寿阳县| 临夏县| 阳曲县| 平和县| 会理县| 加查县| 昌都县| 石林| 台南县| 米脂县| 娱乐| 连南| 邛崃市| 望奎县| 天峻县| 汝阳县| 尚志市| 张家川| 盐亭县| 房山区| 济源市| 改则县| 阿瓦提县| 靖宇县| 加查县| 白朗县| 固始县| 建始县| 凤台县|