對紅外nec協議的傳輸速率的加快

傳統的NEC協議

傳統的nec協議一般完成一幀的傳輸需要大概100ms左右,13.5ms的幀頭,再加上32位的0或1。一個0是560us的低電平加上560us的高電平。一個1是560us低電平加上1690us的高電平。也就是說,
如果32位全爲1的話,這樣一幀所佔的時間最長,爲

 13.5+2.25*32=85.5ms

如果是32位全爲0的話爲

 13.5+1.12*32=49.34ms

所以傳統的nec協議的發送頻率最快只能達到不到20hz,這樣的頻率一般家用電器是足夠使用的,但是目前我運用在機器之間的通信,所以,需要加快一定的頻率。

在紅外通信中這種低速的通信往往是通過一個載波發送,市面上大部分使用的是38khz頻率的方波作爲載波,工業中也常常用到54khz頻率的方波作爲載波,雖說載波是作用於發射端的,但是載波的頻率要和接收管的接收頻率一一對應。於是接收管的屬性決定了紅外nec通信的頻率的上限。

38khz頻率的紅外接收管

打開datasheet,我們可以看到這兩個參數
在這裏插入圖片描述
這樣的兩句話,最小的脈衝長度爲八個週期,最小的間隙爲12個週期。
我對這兩句話是這樣理解的:這句話是對發射端的限制。
第一句話,最小脈衝長度:
首先我們知道這個接收管是隻能接收到經過38khz的載波調製過的信號,也就是說發出的紅外光必須是以脈衝的形式,並且這個脈衝是38k的頻率。我們很輕易算的出來38k的頻率,那麼週期就是1s/38k=26.316us,那麼這裏的最小脈衝長度就是826us=208us,就是這樣的脈衝必須至少持續8個週期,才能被紅外接收管感知到。那麼這就要求,在你的發送協議中你的脈衝長度不能小於208us。所以新協議中我設置成300us的脈衝觸發。(在NEC協議中這個脈衝長度是560us)。
第二句話,最小脈衝間隙:
我的理解是,當你發送完一個能夠被紅外接收管接受到的有效脈衝後,緊接着能再發送一個脈衝的最短週期。通俗的說就是發射管的無脈衝時間不能低於26us
12=312us,就是說你在發送完一個300us的脈衝後你必須在308us後才能發送另一個脈衝,否則脈衝之間的的時間過短,紅外接收管接收不到這個跳變。所以在我的新協議中,我把這個時間設置爲了400us。(傳統的nec協議中這個最短時間爲560us)。
所以nec協議中的

0表示爲300us的脈衝加上400us的低電平

1表示爲300us的脈衝加上800us的低電平

這樣能夠保證0和1能夠被區分開,並且能夠有較低的丟幀率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章