• 沒有找到結果。

第三章 智慧商城功能介紹與硬體架構設計

3.2 智慧商場系統硬體架構設計與韌體介紹

3.2.4 低功耗藍牙模組

我們智能車系統主要是利用切換不同的天線來接收手機演算後的訊號強度值 (RSSI),藉此來判斷智能車行走方向。開始運作時,藍牙模組將做為 Slave 角色與 手機(Master)連線,並等待手機端傳回來的接收訊號強度值(RSSI)計算結果,當藍 牙模組收到計算後的 RSSI 數值後,便會儲存下來,並透過 Serial Peripheral Interface (SPI) 通訊界面通知微控制器模組(MCU)切換天線,當 MCU 切換至下一支天線後,

始化設置完成後會處於廣播狀態,與手機建立連線後會處於連線狀態,以下將分別 說明這兩種狀態的韌體設計。

1. 廣播狀態:

藍牙模組初始化設置完成後將透過操作系統虛擬層設置啟動設備事件,並在 觸發啟動設備事件中,設置藍牙模組處於廣告狀態以及週期事件,用來控制 MCU 切換天線。廣播狀態下的智能車藍牙模組每 0.1 秒會觸發一次週期事件並透過 SPI 通訊介面通知 MCU 切換五支車外天線輪流廣播,切換天線的時間可長可短,但是 考量到顧客的行走速度並進行多次嘗試後,最後我們決定取 0.1 秒為時間間隔等待 手機連線,切換順序為ANT0→ANT1→ANT2→ANT3→ANT4,在尚未建立連線前 會一直切換下去,如此一來使用者在任意方位都能順利與智能車建立連線,切換天 線廣播示意圖如下圖 4.48 所示,一旦與手機建立連線藍牙模組便會進入連線狀態。

圖 3. 20、切換天線廣播示意圖

此外,只要系統上電,MCU 便會開始讀取 RFID 訊息。藍牙模組每一次透過 SPI 通訊界面傳送訊息給 MCU,都會與 MCU 交換一次智能車內商品 RFID 訊息回 來,當藍牙模組收到 MCU 傳來的 RFID 訊息後會更改內部的特性值等待手機讀取,

並顯示在藍牙模組螢幕上。廣播狀態時藍牙模組與 MCU 和天線開關之關之具體關 係圖如下圖 3.21 所示。

圖 3. 21、藍牙模組廣播時與 MCU 和天線開關之關係圖

2. 連線狀態:

智能車藍牙模組與手機建立連線之後,每隔 20ms 會發送一次封包給手機,手 機收到五個封包後,將會解析出五個 RSSI 數值進行權重演算,演算完畢後會以 Notification 的方式將結果傳送給藍牙模組,此時藍牙模組會觸發通用屬性規範層 訊息處理函數,並且儲存對應天線的 RSSI 演算數值,而每一個 Notification 封包大 小為一位元組,我們將八個位元中最高位元當作智能車停止與啟動的控制訊息,其 他七個位元則代表權重演算完的 RSSI 值,藍牙模組接收到 Notification 封包後便 會分析封包,若其中包含停止訊息,則會通知 MCU 控制馬達停止,若沒有停止訊 息,則通知 MCU 控制馬達啟動。Notification 封包位元分配如下圖 3.22。

藍牙模組將收到的 RSSI 值儲存下來後會切換下一支天線,而存下來的 RSSI

使用者得知智能車內的商品資訊。詳細流程如下圖 3.23 所示,由上到下表示模式 的切換,右方文字主要說明該模式下智能車藍牙模組與手機、MCU 之間的互動關 係。

圖 3. 23、藍牙模組運作時的詳細流程圖

簡而言之,智能車藍牙模組主要工作包括以下四項。第一,從手機端接收停止 或啟動智能車的訊息,並透過 SPI 傳給 MCU。第二,從手機端接收權重演算後的 RSSI 值,並透過 SPI 傳給 MCU 來控制馬達。第三,透過 SPI 傳送天線切換訊息 給 MCU 使 MCU 順利切換天線。第四,從 MCU 接收 RFID 資訊供手機讀取,讓 使用者得知車內商品資訊。具體關係圖如下圖 3.24 所示。