最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實(shí)現(xiàn)模擬USB對8bit數(shù)據(jù)的NRZI編碼輸出

 更新時間:2018年12月18日 09:46:00   作者:Engineer-Bruce_Yang  
今天小編就為大家分享一篇關(guān)于C語言實(shí)現(xiàn)模擬USB對8bit數(shù)據(jù)的NRZI編碼輸出,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

USB的NRZI編碼方式,將原數(shù)據(jù)進(jìn)行處理,原數(shù)據(jù)為0時,編碼成電平翻轉(zhuǎn),原數(shù)據(jù)為1時,編碼成電平不翻轉(zhuǎn),USB要發(fā)送數(shù)據(jù)的時候,硬件把數(shù)據(jù)流轉(zhuǎn)化成為NRZI編碼,然后經(jīng)過USB的差分線D+和D-將數(shù)據(jù)發(fā)送出去,接收方在接收數(shù)據(jù)的后做逆處理,要注意的是,在沒有數(shù)據(jù)傳輸?shù)臅r候,也就是空閑的時候,數(shù)據(jù)線是保持高電平的,這點(diǎn)一定要注意,很多書上就是一筆代過,根本不知道為什么!

在USB的頭部有一個同步域,由7個0組成,當(dāng)編碼成NRZI的時候,就是一串0101010的方波了,而方波的頻率就是發(fā)送的波特率。

#include <stdio.h>
//對8bit數(shù)據(jù)的NRZI編碼 
int main(void)
{
 int i , j;
 unsigned char RawData = 0x00 ; //0000 0000
 unsigned char NRZI_Data ;
 unsigned char buffer[8] ;
 unsigned char state = 1 , _state;
 //打印原始數(shù)據(jù) 
 printf("RawData:0x%x\n",RawData);
 //處理8bit數(shù)據(jù),將數(shù)據(jù)保存到數(shù)組里 
 for(i = 0 ; i < 8 ; i ++)
 {
 //如果最高位為1時 
 //如果為1,翻譯成電平不翻轉(zhuǎn)
 if(RawData & 0x80) 
  buffer[i] = _state ;
 else 
 {
  //設(shè)置一個空閑位idle,后面NRZI變化的時候也要關(guān)注它 
  if(state == 1)
  {
  buffer[i] = !state ; 
  state = -1 ;
  goto __flag ;
  }
  buffer[i] = !_state ;
 }
 //保持上一個數(shù)據(jù)的狀態(tài) 
 __flag:
 _state = buffer[i] ;
 RawData <<=1 ;
 }
 //組合 
 for(i = 0 , j = 7 ; i < 8 , j >= 0 ; i++ , j--)
 NRZI_Data |= buffer[i] << j ;
 printf("NRZI_Data:0x%x\n",NRZI_Data); 
 return 0 ;
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)

    C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)

    所謂的“復(fù)制控制”即通過這三個成員函數(shù)控制對象復(fù)制的過程,本文主要介紹了C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • 關(guān)于C語言一維數(shù)組算法問題詳解

    關(guān)于C語言一維數(shù)組算法問題詳解

    數(shù)組是以順序格式排列的均勻數(shù)據(jù)的集合,在C語言中學(xué)習(xí)數(shù)組的概念非常重要,因?yàn)樗腔镜臄?shù)據(jù)結(jié)構(gòu),這篇文章主要給大家介紹了關(guān)于C語言一維數(shù)組算法問題的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • C語言學(xué)生信息管理系統(tǒng)設(shè)計與實(shí)現(xiàn)

    C語言學(xué)生信息管理系統(tǒng)設(shè)計與實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了C語言學(xué)生信息管理系統(tǒng)設(shè)計與實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 超詳細(xì)講解C++的三種函數(shù)傳遞方式

    超詳細(xì)講解C++的三種函數(shù)傳遞方式

    這個文章我將把我學(xué)習(xí)的有關(guān)函數(shù)傳遞形式的知識做個總結(jié),相信很多剛?cè)腴T的同學(xué)看到許多文章五花八門的形參會感到頭疼,但本質(zhì)上無非就是我要說的三種傳遞形式,快來跟我一起學(xué)習(xí)吧
    2022-05-05
  • C++ 前置聲明詳解及實(shí)例

    C++ 前置聲明詳解及實(shí)例

    這篇文章主要介紹了C++ 前置聲明詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言編程入門之程序頭文件的簡要解析

    C語言編程入門之程序頭文件的簡要解析

    這篇文章主要介紹了C語言編程入門之程序頭文件的簡要解析,包括頭文件重復(fù)包含問題等方面的說明,需要的朋友可以參考下
    2015-12-12
  • C語言詳細(xì)講解二分查找用法

    C語言詳細(xì)講解二分查找用法

    二分查找法,又叫做折半查找法,它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結(jié)構(gòu),而且表中元素按關(guān)鍵字有序排列
    2022-04-04
  • C++高性能服務(wù)器框架之協(xié)程調(diào)度模塊

    C++高性能服務(wù)器框架之協(xié)程調(diào)度模塊

    這篇文章主要介紹了C++高性能服務(wù)器框架中的協(xié)程調(diào)度模塊,文中通過代碼示例介紹的非常詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-06-06
  • C語言初階之?dāng)?shù)組詳細(xì)介紹

    C語言初階之?dāng)?shù)組詳細(xì)介紹

    大家好,本篇文章主要講的是C語言初階之?dāng)?shù)組詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C++ 中的INT_MAX,INT_MIN數(shù)值大小操作

    C++ 中的INT_MAX,INT_MIN數(shù)值大小操作

    這篇文章主要介紹了C++ 中的INT_MAX,INT_MIN數(shù)值大小操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

本溪市| 曲沃县| 江都市| 湖北省| 绥棱县| 武汉市| 敦煌市| 赤峰市| 获嘉县| 永川市| 兖州市| 永仁县| 乌恰县| 财经| 朔州市| 丽水市| 鹤峰县| 桃源县| 望谟县| 奉节县| 钦州市| 海丰县| 突泉县| 房产| 轮台县| 内乡县| 都安| 隆德县| 涪陵区| 邯郸市| 新干县| 赤水市| 蒙山县| 兴化市| 巫溪县| 白银市| 荆门市| 镇宁| 西充县| 石阡县| 岳普湖县|