欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 飛控開發(fā)基礎(chǔ)-[8] STM32 I2C(激光測(cè)距) [打印本頁(yè)]

作者: 設(shè)計(jì)開發(fā)工程    時(shí)間: 2020-3-27 10:24
標(biāo)題: 飛控開發(fā)基礎(chǔ)-[8] STM32 I2C(激光測(cè)距)


I2C(激光測(cè)距)一、VL53L1X簡(jiǎn)介
VL53L1X屬于STMicroelectronics即常說(shuō)的意法半導(dǎo)體(ST)公司推出的FlightSense™ 產(chǎn)品系列ToF(Time of flight)激光測(cè)距傳感器
VL53L1X是目前市場(chǎng)上最快的微型ToF傳感器,精確測(cè)距能力達(dá)4米,測(cè)距頻率快至50 Hz。它采用微型、可回流焊封裝,集成了一個(gè)單光子雪崩二極管(SPAD)接收陣列、一個(gè)940nm不可見激光1類發(fā)射器、物理紅外濾波器和光學(xué)器件,可在各種環(huán)境照明條件下實(shí)現(xiàn)最佳測(cè)距性能,并提供一系列覆蓋窗口選擇。
由于封裝小巧,因此它很容易集成到設(shè)備中。與傳統(tǒng)的紅外傳感器不同,VL53L1X采用ST最新一代ToF技術(shù),無(wú)論目標(biāo)顏色和反射率如何,都可以進(jìn)行絕對(duì)距離測(cè)量。還可以對(duì)接收陣列上的ROI(感興趣區(qū)域)大小進(jìn)行編程,從而減小傳感器 FoV(視場(chǎng)角)VL53L1X激光測(cè)距傳感器的實(shí)物圖如下圖所示。
二、I2C概述
Inter-Integrated Circuit,即內(nèi)部集成電路接口,縮寫為IICI2CIIC總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線在物理連接上非常簡(jiǎn)單,分別由SDA(串行數(shù)據(jù)線)SCL(串行時(shí)鐘線)及上拉電阻組成。通信原理是通過(guò)對(duì)SCLSDA線高低電平時(shí)序的控制,來(lái)產(chǎn)生I2C總線協(xié)議所需要的信號(hào)進(jìn)行數(shù)據(jù)的傳遞。在總線空閑狀態(tài)時(shí),這兩根線一般被上面所接的上拉電阻拉高,保持著高電平。如下圖所示為單片機(jī)與I2C接口的傳感器之間通信示意圖。

三、I2C總線協(xié)議
對(duì)I2C總線的操作實(shí)際就是主從設(shè)備之間的讀寫操作。大致可分為以下兩種操作情況:
第一,主設(shè)備往從設(shè)備中寫數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:
第二,主設(shè)備從從設(shè)備中讀數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:
實(shí)際上把I2C協(xié)議拆分開來(lái)它的組成有:起始條件、終止條件、地址段、數(shù)據(jù)段、響應(yīng)ACK、非響應(yīng)NACK
1STARTSTOP起始和終止條件都是由主機(jī)(master)發(fā)起產(chǎn)生。總線在起始條件之后處于忙碌狀態(tài),在停止條件之后又處于空閑狀態(tài)。
起始條件:SCL線是高電平時(shí),SDA線從高電平向低電平切換。
停止條件:SCL線是高電平時(shí),SDA線從低電平向高電平切換。
(2)地址段,地址段由7bit地址+讀寫位組成,一個(gè)7-bit的地址是從最高位(MSB) 開始發(fā)送的,這個(gè)地址后面會(huì)緊跟1-bitR/W)的操作符,1表示讀操作,0表示寫操作。 接下來(lái)的一個(gè)bitNACK/ACK,當(dāng)這個(gè)幀中前面8 bit發(fā)送完后,接收端的設(shè)備獲得SDA控制權(quán),此時(shí)接收設(shè)備應(yīng)該在第9個(gè)時(shí)鐘脈沖之前回復(fù)一個(gè)ACK(將SDA拉低)以表示接收正常,如果接收設(shè)備沒有將SDA拉低,則說(shuō)明接收設(shè)備可能沒有收到數(shù)據(jù)(如尋址的設(shè)備不存在或設(shè)備忙)或無(wú)法解析收到的消息,如果是這樣,則由master來(lái)決定如何處理,比如:停止。
(3)數(shù)據(jù)段,SDA數(shù)據(jù)線上的每個(gè)字節(jié)必須是8位,每次傳輸?shù)淖止?jié)數(shù)量沒有限制。每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位(ACK)。首先傳輸?shù)臄?shù)據(jù)是最高位(MSB)SDA上的數(shù)據(jù)必須在SCL高電平周期時(shí)保持穩(wěn)定,數(shù)據(jù)的高低電平翻轉(zhuǎn)變化發(fā)生在SCL低電平時(shí)期。
以傳輸Byte1010 1010 (0xAAh)為例,SDA SCL傳輸時(shí)序如下所示:
(4)響應(yīng)ACKAcknowledge)和非響應(yīng)NACKNot Acknowledge,
每個(gè)字節(jié)傳輸必須帶響應(yīng)位,相關(guān)的響應(yīng)時(shí)鐘也由主機(jī)產(chǎn)生,在響應(yīng)的時(shí)鐘脈沖期間(第9個(gè)時(shí)鐘周期),發(fā)送端釋放SDA線,接收端把SDA拉低。以上圖傳輸101010101為例,SCL9位時(shí)鐘高電平信號(hào)期間,SDA拉低其代表了有ACK響應(yīng)位。當(dāng)在SCL9位時(shí)鐘高電平信號(hào)期間,SDA仍然保持高電平,這種情況定義為NACK非響應(yīng)位。這種情況下,主機(jī)可以直接產(chǎn)生STOP條件終止以后的傳輸或者繼續(xù)重新START開始一個(gè)新的傳輸。以下情況會(huì)導(dǎo)致出現(xiàn)NACK位:
a接收機(jī)沒有發(fā)送機(jī)響應(yīng)的地址,接收端沒有任何ACK發(fā)送給發(fā)射機(jī)
b由于接收機(jī)正在忙碌處理實(shí)時(shí)程序?qū)е陆訜o(wú)法接收或者發(fā)送;
c傳輸過(guò)程中,接收機(jī)識(shí)別不了發(fā)送機(jī)的數(shù)據(jù)或命令;
d接收機(jī)無(wú)法接收;
e主機(jī)接收完成讀取數(shù)據(jù)后,要發(fā)送NACK結(jié)束告知從機(jī)
以下圖例代表NACK時(shí)序:
根據(jù)I2C協(xié)議分解的各個(gè)部分,可得出讀和寫的時(shí)序圖,以向某傳感器的地址為0x09的寄存器寫入兩個(gè)字節(jié) 0x020x84為例,如下圖所示為該過(guò)程時(shí)序圖。
以從某傳感器的地址為0x09的寄存器中讀出兩個(gè)字節(jié)0x020x84為例,該時(shí)序圖如下所示。

四、激光測(cè)距實(shí)驗(yàn)
激光測(cè)距實(shí)驗(yàn)使用STM32GPIO模擬I2C與激光測(cè)距模組VL53L1X相連接,串口1UART1,通過(guò)USB轉(zhuǎn)串口模塊連接電腦,把I2C獲取到的VL53L1X的距離值(mm為單位)通過(guò)串口1傳輸?shù)诫娔X端的串口調(diào)試助手顯示出來(lái)。做該實(shí)驗(yàn)的時(shí)候需要把視覺模組暫時(shí)取下,并且把USB轉(zhuǎn)串口的線接到視覺模組接口處。激光測(cè)距模組VL53L1X在無(wú)人機(jī)支架底部,杜邦線和SH1.0接口接到主板上的USART3(這里用該接口的GPIO模擬I2C)的接口上,如下圖所示。
根據(jù)原理圖,可以看到VL53L1XI2C接口分別是:PB10PB11,如下圖所示。
串口1的配置可以參考《串口(基礎(chǔ)收發(fā)),配置代碼(通過(guò)調(diào)用官方庫(kù))。
獲取VL53L1X的測(cè)距數(shù)據(jù)代碼編寫的思路如下:
代碼思路
1
管腳配置
1、定義結(jié)構(gòu)體;
2、使能時(shí)鐘;
3、填充結(jié)構(gòu)體;
4、裝載結(jié)構(gòu)體。
2
I2C讀寫邏輯
1、I2C各個(gè)時(shí)序邏輯;
2、讀一個(gè)字節(jié);
3、寫一個(gè)字節(jié);
4、讀多個(gè)字節(jié);
5、寫多個(gè)字節(jié)。
4
VL53L1X驅(qū)動(dòng)
1、VL53L1X初始化;
2、測(cè)距邏輯實(shí)現(xiàn)。
模擬I2CGPIO初始化代碼如下:
VL53L1X的初始化代碼如下。
VL53L1X的測(cè)距代碼如下。

每隔5s讀取一次距離,并發(fā)送到串口上。代碼如下所示。
這里注意要把串口的發(fā)送也配置好,這樣才能把數(shù)據(jù)發(fā)送到電腦。串口1通過(guò)USB轉(zhuǎn)串口模塊接到電腦,保存、編譯、下載代碼,可以看到串口調(diào)試助手每隔5s在打印VL53L1X2個(gè)字節(jié)的距離數(shù)據(jù)(mm為單位),數(shù)據(jù)如下圖所示:
全部資料51hei下載地址:
2.飛控開發(fā)基礎(chǔ)-【8】I2C(激光測(cè)距).pdf (1.18 MB, 下載次數(shù): 24)





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1