對工程實踐——基於智能物聯結點的設計與實現進行需求分析和建模


一、前言

  物聯結點的設計與實現是基於開發板ESP-WROVER_KIT_V4.1展開的,項目的進程展開按照模塊化進行,也就是分為不同的硬件設計進行,以下的分析實現均以嵌入式的變通方式展示。

二、用例建模

  首先需要明白用例,用例是一個業務過程;業務過程就是某硬件設備在開發板這一特定領域上完成某些特定的任務需要進行的一系列活動。首先確定基本要素,ESP-WROVER_KIT_V4.1是接受者,Linux環境工程師是用例執行者。這里,工程師值負責了代碼和API的邏輯整合和實現,更多的實現在開發板系統對各個模塊的操作,但這里,從人的角度出發很容易理解,使用開發板這一過程是一個明確的用例過程。

現在對用例進行抽象層級分析(舉例):

  • 抽象用例:①計算輸入信號的上升沿或下降沿脈沖的數量;②RMT脈沖發送或接受;③模擬數字轉換。
  • 高層用例:①計算輸入信號的脈沖數量這一用例的開始狀態是LED控制塊生成脈沖,終止狀態是PCNT計算得出數值;②發送或接受RMT脈沖信號這一用例的開始狀態配置發送或接受模式的參數,終止狀態是RTM發出或接受一系列脈沖信號;③數字量和模擬量的相互轉化這兩個用例的開始狀態是接受相對應的類型信號,終止狀態是得到目的對應的類型信號。
  • 擴展用例:①代碼控制LED控制塊生成脈沖——PCNT收到信號並運行計數器——進行中斷條件判斷——反饋傳遞數值(紅色和藍色分別代表參與者)

三、業務領域建模

  首先要明確需求中的業務領域內的名詞或名詞短語既可以是一個類名,也可以是一個屬性名。區別它們的關鍵是能否單獨存在,即屬性是用來描述對象或存儲對象的狀態信息。比如,脈沖計數器可以是一個類單獨存在,但寄存器必須依附着具體的硬件設備才具有實際的意義,如16位帶符號計數器等。

針對工程實踐的具體對象,分析其間的關系:

  • PCNT模塊的業務建模

  • RMT模塊的業務建模

  • ADC模塊的業務建模

  • 結合開發板整合業務領域建模

四、數據模型

  • PCNT模塊

  • 配置和讀取
變量名 類型 唯一 含義
pcnt_unit pcnt_unit_t 單元編號
evt_type pcnt_evt_type_t 監聽事件類型
channel pcnt_channel_t PCNT通道號
pulse_io int 脈沖信號輸入GPIO
ctrl_io int 控制信號輸入GPIO
count int16_t* 接受計數器值的指針
value pcnt_unit_t unit 接受PCNT事件的計數器值的指針

 

 

 

 

 

 

 

 

 

 

  • 計算上升沿脈沖數量
變量名 類型 唯一 含義
pos_mode pcnt_count_mode_t 檢測上升沿時為計數器模式
hctrl_mode pcnt_ctrl_mode_t 控制信號為高電平時的計數器模式

 

 

 

 

 

  • 計算下降沿脈沖數量
變量名 類型 唯一 含義
neg_mode pcnt_count_mode_t 檢測上升沿時為計數器模式
lctrl_mode pcnt_ctrl_mode_t 控制信號為低電平時的計數器模式

 

 

 

 

 

  • RMT模塊

  • 配置和讀取
變量名 類型 唯一 含義
channel rmt_channel_t RMT通道
rmt_item const rmt_item32_t * RMT項目數組的頭點
item_num int RMT數據項編號
mem_offset uint16_t  內存的索引偏移量

 

 

 

 

 

 

 

  • 發送RMT脈沖
變量名 類型 唯一 含義
wait_tx_done bool

設置為true以等待所有數據發送完成

 

 

 

 

  • 接受RMT脈沖
變量名 類型 唯一 含義
rx_idx_rst bool

設置為真以重置接收器的內存索引

 

 

 

 

函數名 返回  解釋
rrmt_rx_start() ESP_ERR_INVALID_ARG 參數錯誤 啟動接收器
ESP_OK 成功
rrmt_rx_stop() ESP_ERR_INVALID_ARG 參數錯誤 停止接受
ESP_OK 成功

 

 

 

 

 

 

 

  • AD模塊

函數名 返回  解釋
adc1_config_width() ESP_OK 成功

配置ADC 1捕獲寬度

同時為ADC 1啟用輸出反轉

ESP_ERR_INVALID_ARG 參數錯誤
adc1_config_channel_atten() ESP_ERR_INVALID_ARG 參數錯誤

在ADC 1上設置特定信道的衰減

並配置其相關的GPIO引腳復用器

ESP_OK 成功
adc2_config_channel_atten() ESP_ERR_INVALID_ARG 參數錯誤

在ADC 2上設置特定信道的衰減

並配置其相關的GPIO引腳復用器

ESP_OK 成功
adc1_get_raw() -1:參數錯誤 從單個通道讀取ADC 1
其他:ADC 1通道讀取的數據
adc2_get_raw() esp_OK如果成功的話 從單個通道讀取ADC 2
esp_err_timeout其他控制器正在使用ADC2,且請求超時

 

 

變量名 類型 唯一 含義
channel adc1_channel_t ADC 1通道配置
atten adc_atten_t 衰減等級

 

 

 

 

五、概念原型及工作過程

首先確定概念和概念原型是兩種意思

  • 概念是人對能代表某種事物或發展過程的特點及意義所形成的思維結論。
  • 概念模型是是一種虛擬的、理想化的軟件產品形式。所以概念是一種內置的內容,概念模型是一種輪廓內容。

  基礎具體工程實踐,概念原型就是已知API結合數據模型設計施加在具體用例(產生脈沖、接受脈沖、計算脈沖數量、計算轉型后的電壓數值)的形式化表達。用戶通過嵌入式開發板中的一些硬件模塊,在Linux的環境下,對寄存器賦值讓CPU執行一系列的操作,然后燒錄到開發板上,最后通過監視器查看預期結果。

六、總結

  因為此工程實踐偏向於硬件,在進行建模分析時,難以抽象出很好的用例和模型,可能此篇文章的用例建模、業務領域建模以及數據建模不是很好。但總體來說,這一次的需求分析和概念原型的作業讓我對我們組的工程實踐有了更明晰的理解和認識,這會幫助我更好的完成后續的工程實踐。

 

參考資料:https://gitee.com/mengning997/se/tree/master/ppt

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM