本設(shè)計(jì)是在Linux操作系統(tǒng)中實(shí)現(xiàn)一個靈活的物聯(lián)網(wǎng)網(wǎng)關(guān),主要依托于標(biāo)準(zhǔn)化的USB/ACM拦盹,USB/ECM傳輸接口尘执,實(shí)現(xiàn)動態(tài)加載舍哄、動態(tài)配置、多路并行的網(wǎng)關(guān)設(shè)計(jì)誊锭。
網(wǎng)關(guān)與USB
現(xiàn)在物聯(lián)網(wǎng)設(shè)計(jì)中網(wǎng)關(guān)的前端模塊與Linux主機(jī)之間往往采用UART/SPI方式連接表悬,但是這兩種方式都不如USB能夠?qū)崿F(xiàn),熱插拔丧靡,即插即用蟆沫,動態(tài)加載和配置,以及標(biāo)準(zhǔn)化設(shè)計(jì)温治。USB也可以Mini-PCI-Express的形式出現(xiàn)饭庞。
以LoRa/Sub-1GHz/2.4GHz為例,同時接入多路收發(fā)器熬荆,除了最常見的TDM舟山,還可以按照FDM/CDM/SDM等復(fù)用方式實(shí)現(xiàn)多路頻譜共享÷笨遥可以最低廉的價格實(shí)現(xiàn)專業(yè)的網(wǎng)關(guān)架構(gòu)累盗。除此之外,也可以實(shí)現(xiàn)混合型網(wǎng)關(guān)突琳,即將RFID/NFC/IEEE802.15.4/Sub-1GHz/LoRa/WiFi/BLE等在同一網(wǎng)關(guān)中實(shí)施若债。由于USB是自我描述的,可以用于自動識別和配置拆融。
網(wǎng)關(guān)架構(gòu)
雖說USB理論上可以擴(kuò)展127個設(shè)備蠢琳,由于BLE/WiFi日益集成,所以物聯(lián)網(wǎng)能夠接入的設(shè)備數(shù)量冠息,以LoRa為例挪凑,8個就差不多了。多了逛艰,電源部分也需要更新躏碳。所以,無論是多線程,多進(jìn)程菇绵,異步協(xié)程都可以肄渗。雖說每個設(shè)備都可以用單一進(jìn)程去驅(qū)動,但是多個設(shè)備接入時咬最,往往需要一個服務(wù)程序來實(shí)現(xiàn)頻率和資源調(diào)度翎嫡。以LoRa/Sub-1GHz為例,不同的模塊需要配置不同的頻率載頻永乌,調(diào)制參數(shù)等等惑申,以實(shí)現(xiàn)LoRaWAN的規(guī)范。這種同類模塊使用異步或協(xié)程就可以了翅雏。
而異構(gòu)模塊圈驼,如NFC/Sub-1GHz/BLE的混搭,我覺得使用多個單獨(dú)進(jìn)程配合消息隊(duì)列的方式更加合理望几。當(dāng)然绩脆,同類模塊也可以使用這種方式。