• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            tinyxml

            更新時間:2023-03-02 08:21:35 閱讀: 評論:0

            資料推薦內容包括:C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK,嵌入式 等。。。后臺私信;資料;兩個字可以免費領取

            隨著高速數據傳輸業務需求的增加,如何高質量的解決高速IC芯片間的互連變得越來越重要。低功耗及優異的噪聲性能是有待解決的主要問題。芯片間互連通常有三種接口:PECL (Positive Emitter-Coupled Logic)、LVDS (Low-Voltage Differential Signals)、CML (Current Mode Logic)。在設計高速數字系統時,人們常會遇到不同接口標準芯片間的互連,為解決這一問題,我們首先需要了解每一種接口標準的輸入輸出電路結構,由此可以知道如何進行直流偏置和終端匹配。本文介紹了高速通信系統中PECL、CML和LVDS之間相互連接的幾種方法,并給出了Maxim產品的應用范例。

            PECL接口

            PECL由ECL標準發展而來,在PECL電路中省去了負電源,較ECL電路更便于使用。PECL信號的擺幅相對ECL要小,這使得該邏輯更適合于高速數據的串行或并行連接。PECL標準最初由Motorola公司提出,經過很長一段時間才在業內推廣開。

            2.1 PECL接口輸出結構

            PECL電路的輸出結構如圖1所示,包含一個差分對管和一對射隨器。輸出射隨器工作在正電源范圍內,其電流始終存在,這樣有利于提高開關速度。標準的輸出負載是接50電阻至VCC-2V的電平上,如圖1所示,在這種負載條件下,OUT+與OUT-的靜態電平典型值為VCC-1.3V,OUT+與OUT-輸出電流為14mA。PECL結構的輸出阻抗很低,典型值為4-5,這表明它有很強的驅動能力,但當負載與PECL的輸出端之間有一段傳輸線時,低阻抗造成的失配將導致信號時域波形的振鈴現象。

            圖1. PECL接口輸出結構

            2.2 PECL接口輸入結構

            PECL輸入結構如圖2所示,它是一個具有高輸入阻抗的差分對。該差分對共模輸入電壓需偏置到VCC-1.3V,這樣允許的輸入信號電平動態范圍最大。Maxim公司的PECL接口有兩種形式的輸入結構,一種是在芯片上已加有偏置電路,如MAX3885,另一種則需要外加直流偏置,如MAX3867、MAX3675。

            圖2. PECL接口輸入結構

            表I中給出了Maxim公司PECL接口輸入輸出的具體電氣指標。

            表I. PECL輸入和輸出規格

            在+5.0V和+3.3V供電系統中,PECL接口均適用,+3.3V供電系統中的PECL常被稱作低壓PECL,簡寫為

            圖5. CML輸入電路匹配

            表II以MAX3831/MAX3832為例列出了CML器件的輸入輸出技術參數

            表II. CML輸入和輸出規格(負載 = 50

            至VCC)

            注:Maxim不同產品CML輸入靈敏度不同,如MAX3875、MAX3876。

            4 LVDS接口

            LVDS用于低壓差分信號點到點的傳輸,該方式有三大優點,使其更具有吸引力。A) LVDS傳輸的信號擺幅小,從而功耗低,一般差分線上電流不超過4mA,負載阻抗為100。這一特征使它適合做并行數據傳輸。B) LVDS信號擺幅小,從而使得該結構可以在2.5V的低電壓下工作。C) LVDS輸入單端信號電壓可以從0V到2.4V變化,單端信號擺幅為400mV,這樣允許輸入共模電壓從0.2V到2.2V范圍內變化,也就是說LVDS允許收發兩端地電勢有±1V的落差。

            4.1 LVDS接口輸出結構

            Maxim公司LVDS輸出結構在低功耗和速度方面做了優化,電路如圖6所示。電路差分輸出阻抗為100,表III列出了其它一些指標。

            圖6. LVDS接口輸出結構

            4.2 LVDS接口輸入結構

            LVDS輸入結構如圖7所示,IN+與IN-輸入差分阻抗為100,為適應共模電壓寬范圍內的變化,輸入級還包括一個自動電平調整電路,該電路將共模電壓調整為一固定值,該電路后面是一個施密特觸發器。施密特觸發器為防止不穩定,設計有一定的滯回特性,施密特后級是差分放大器。

            圖7. LVDS接口輸入結構

            表III總結了Maxim公司LVDS輸入與輸出技術指標(MAX3831, MAX3821和MAX3890)

            表III. LVDS輸入和輸出規格

            5 接口互連

            5.1 CML到CML的連接

            如果接收器與發送器之間采用相同的VCC電源,CML驅動器輸出可以直流耦合到CML接收器輸入,無需額外的元件。如果接收器與發送器采用不同的電源,系統需要用交流

            圖11. PECL與PECL之間的交流耦合

            R2和R3的選擇應考慮如下幾點:(1) PECL輸入直流偏壓應固定在VCC-1.3V;(2)輸入阻抗應等于傳輸線阻抗;(3)低功耗;(4)外圍器件少。最常用的就是圖11中的兩種。在圖11(a)中,R2和R3的選擇應滿足下面方程組:

            求解得到:

            圖11(a)的缺陷是:由終端網絡引起的功耗較大。如果系統對于功耗要求較高,可以采用圖11(b)所示電路。這時,我們需要滿足:

            解得:

            PECL的輸出共模電壓需固定在VCC-1.3V,在選擇直流偏置電阻(R1)時僅需該電阻能夠提供14mA到地的通路,這樣R1=(VCC-1.3V)/14mA。在+3.3V供電時,R1 = 142,+5.0V供電時,R1 = 270。然而這種方式給出的交流負載阻抗低于50,在實際應用中,+3.3V供電時,R1可以從142到200之間選取,+5.0V供電時,R1可以從270 到350之間選取,原則是讓輸出波形達到最佳。

            可以通過兩種方式進一步改善PECL的終端匹配:(1)增加一個與耦合電容串聯的電阻,使得PECL驅動器端的等效交流阻抗接近50;(2)添加一個與R1串聯的電感,使交流阻抗受控于接收器阻抗,與R1無關。

            5.3 LVDS與LVDS的連接

            因為LVDS的輸入與輸出都是內匹配的,所以LVDS間的連接可以如圖12中那樣直接連接。

            圖12. LVDS與LVDS的連接

            6 LVDS,PECL,CML間的互連

            在下面的討論中,假設采用+3.3V PECL。

            6.1 LVPECL到CML的連接

            LVPECL與CML之間的耦合方式可以是交流方式,也可以是直流方式。

            6.1.1 交流耦合情況

            LVPECL到CML的一種連接方式就是交流耦合方式,如圖13所示。在LVPECL的兩個輸出端各加一個到地的偏置電阻,電阻值選取范圍可以從142到200。如果LVPECL的輸出信號擺幅大于CML的接收范圍,可以在信號通道上串一個25的電阻,這時CML輸入端的電壓擺幅變為原來的0.67倍。

            圖13. LVPECL與CML之間的交流耦合

            6.1.2 直流耦合情況

            在LVPECL到CML的直流耦合連接方式中需要一個電平轉換網絡,如圖14中所示。該電平轉換網絡的作用是匹配LVPECL的輸出與CML的輸入共模電壓。一般要求該電平轉換網絡引入的損耗要小,以保證LVPECL的輸出經過衰減后仍能滿足CML輸入靈敏度的要求;另外還要求自LVPECL端看到的負載阻抗近似為50。下面以LVPECL驅動MAX3875的CML輸入為例說明該電平轉換網絡。

            圖14. LVPECL與CML之間的電阻網絡(MAX3875)

            下面是該電阻網絡必須滿足的方程:

            (注:假定LVPECL的最小差分輸出擺幅為1200mV,而MAX3875的輸入靈敏度為50mV,這樣電阻網絡的最小增益必須大于50mV/400mV = 0.042。)

            求解上面的方程組,我們得到R1 = 215,R2 = 82.5,R3 = 274 (標準值的1%),VA = 1.35V,VB = 3.11V,增益 = 0.147,ZIN = 49。把LVPECL輸出與MAX3875輸入連接好,實測得:VA = 2.0V,VB = 3.13V。

            LVPECL到MAX3875的直流耦合結構如圖15所示,對于其它的CML輸入,最小共模電壓和靈敏度可能不同,讀者可根據上面的考慮計算所需的電阻值。

            圖15. LVPECL與CML之間的直流耦合(MAX3875)

            6.2 CML到LVPECL的連接

            圖16給出了CML到LVPECL三種交流耦合解決方案。

            圖16. CML與LVPECL之間的交流耦合

            6.3 LVPECL到LVDS的連接

            6.3.1 直流耦合情況

            LVPECL到LVDS的直流耦合結構需要一個電阻網絡,如圖17中所示,設計該網絡時有這樣幾點必須考慮:首先,我們知道當負載是50接到VCC-2V時,LVPECL的輸出性能是最優的,因此我們考慮該電阻網絡應該與最優負載等效;然后我們還要考慮該電阻網絡引入的衰減不應太大,LVPECL輸出信號經衰減后仍能落在LVDS的有效輸入范圍內。注意LVDS的輸入差分阻抗為100,或者每個單端到虛擬地為50 (圖7所示),該阻抗不提供直流通路,這里意味著LVDS輸入交流阻抗與直流阻抗不等。LVPECL到LVDS的直流耦合所需的電阻網絡需滿足下面方程組:

            . LVPECL與LVDS之間的直流耦合

            考慮VCC = +3.3V情況,解上面的方程組得到:R1 = 182,R2 = 47.5,R3 = 47.5,VA = 1.13V,RAC = 51.5,RDC = 62.4,增益 = 0.337。通過該終端網絡連接LVPECL輸出與LVDS輸入時,實測得VA = 2.1V,VB = 1.06V。假定LVPECL差分最小輸出電壓為930mV,在LVDS的輸入端可達到313mV,能夠滿足LVDS輸入靈敏度要求??紤]信號較大時,如果LVPECL的最大輸出為1.9V,LVDS的最大輸入電壓則為640mV,同樣可以滿足LVDS輸入指標要求。

            6.3.2 交流耦合情況

            LVPECL到LVDS的交流耦合結構如圖18所示,LVPECL的輸出端到地需加直流偏置電阻(142到200),同時信號通道上一定要串接50電阻,以提供一定衰減。LVDS的輸入端到地需加5.0k電阻,以提供共模偏置。

            圖18. LVPECL與LVDS之間的交流耦合

            6.4 LVDS到LVPECL的連接

            LVDS與LVPECL之間的直流和交流耦合需要進行幾項匹配。

            6.4.1 直流耦合情況

            LVDS與LVPECL之間采用直流耦合結構時,需要加一個電阻網絡,如圖19所示。該電阻網絡完成LVDS輸出電平(1.2V)到LVPECL輸入電平(VCC-1.3V)的轉換。由于LVDS的輸出是以地為參考,而LVPECL的輸入是以VCC 為參考,這需要在構建電平轉換網絡時注意LVDS的輸出不會對供電電源的變化敏感;另一個問題是需要在功耗和速度方面折中考慮,如果電阻值(R1、R2、R3)取得較小,由電阻網絡和LVPECL輸入寄生電容構成的時間常數較小,允許電路在更高的速度下工作。但是,由于這些電阻上流過較大的電流,使得總功耗增大。這時,LVDS的輸出性能容易受電源波動的影響。還有一個問題就是要考慮阻抗匹配和網絡衰減問題,電阻值可以通過下面的方程導出。

            圖19. LVDS與LVPECL之間的直流耦合

            在VCC電壓為+3.3V時,解上面的方程得:R1 = 374,R2 = 249,R3 = 402,VA = 1.2V,VB = 2.0V,RIN = 49,增益 = 0.62。LVDS的最小差分輸出信號擺幅為500mVP-P,在上面結構中加到LVPECL輸入端的信號擺幅變為310mVP-P,該幅度低于LVPECL的輸入標準,但對于絕大多數Maxim公司的LVPECL電路來說,該信號幅度是足夠的,原因是Maxim公司LVPECL輸入端有較高的增益。在實際應用中,讀者可根據器件的實際性能作出自己的判斷。

            6.4.2 交流耦合情況

            LVDS到LVPECL的交流耦合結構較為簡單,圖20給出了兩個例子。

            圖20. LVDS與LVPECL之間的交流耦合

            6.5 CML和LVDS間互連

            CML與LVDS之間采用交流耦合方式連接時(圖21),注意,CML輸出信號擺幅應該在LVDS輸入能夠處理的范圍以內。

            圖21. CML與LVDS之間的交流耦合

            如果LVDS驅動器需要驅動一個CML接收器,可以采用圖22所示的交流耦合方式。

            圖22. LVDS與CML之間的交流耦合

            TinyXML2使用教程

            1.TinyXML2概述

            TinyXML2是simple、small、efficient開源的C++ XML文件解析庫,可以很方便的應用到現有的項目之中。非常適合存儲簡單數據,配置文件,對象序列化等數據量不是很大的操作。

            TinyXML2詳細介紹與源碼獲取方法詳見:TinyXML2官網。

            2. TinyXML1與TinyXML2對比

            TinyXML1與TinyXML2這兩個著名的開源XML文件解析庫均出自Lee Thomason之手,向這位滿懷開源精神的大家致敬。

            TinyXML2適用于大部分的C/C++項目開發,經得住考驗,是最好的選擇。較TinyXML1而言,TinyXML2化繁為簡,使用時只需要包含兩個文件,而TinyXML1需要6個文件,一般生成靜態鏈接庫供項目的使用。TinyXML1詳細介紹與源碼見:TinyXML1官網。TinyXML1用法用例可以參考博文:TinyXML快速入門。

            TinyXML2使用了與TinyXML1相似都可API,并且擁有豐富的測試案例。但TinyXML2解析器相對TinyXML1在代碼上是完全重寫,使其更適合于游戲開發中使用。它使用更少的內存,更快,并使用更少的內存分配。

            TinyXML2無需STL,也放棄了對STL支持。所有字符串查詢均使用C風格字符串“const char *”來表示,省去string類型對象的構造,并使代碼更簡單。

            二者共同點:

            (1)都使用了簡單易用的API。

            (2)都是基于DOM(Document Object Model,文檔對象模型)的解析器。

            (3)都支持UTF-8編碼。

            TinyXML2的優點:

            (1)對大部分大部分的C/C++項目具有普適性。

            (2)使用較少的內存(約TinyXML1的40%),速度變得更快。

            (3)沒有C++的STL的要求。

            (4)更接近現代C++的特性,如使用了適當的命名空間。

            (5)適當有效的處理了的空白字符(空格,TAB和回車)。

            TinyXML1的優點:

            (1)可以報告分析錯誤的位置。

            (2)提供一些C++ STL公約支持:流和字符串。

            (3)擁有非常成熟和良好的調試代碼庫。

            3. TinyXML2的用法用例

            TinyXML2的網上教程并不多見,醍醐灌頂,受益匪淺的教程更是鳳毛麟角。有的也是蜻蜓點水、參差不齊的泛泛而談。最終,所能參考的資料也就是官網的文檔和示例代碼,但卻有點晦澀難懂。因此,本文就為了解決這個尷尬的局面,結合官網的資料和網上資源,盡量詳細的列出TinyXML2的常見用法用例,不足之處,請留言補充,后續增加修改。

            XML文件本質就是小型的數據庫,換個角度來說就是,對數據庫有什么操作,那么對XML文件就應能實現什么操作。一般而言,對數據庫的操作包括以下幾種:新建數據庫和對數據庫增刪查改。那么對應XML文件就是新建XML文件、增加XML文件的節點,刪除XML文件的指定節點,查詢XML文件指定節點的值,修改XML文件節點的值。

            使用方法:將tinyxml2.cpp和tinyxml2.h拷貝至項目目錄,使用時包含#include "tinyxml2.h"和using namespace tinyxml2。

            使用場景:存儲用戶信息。

            用戶數據表設計如下:

            對應XML文件實現如下:

            從中可以看出,XML由三大部分組成,分別是聲明、根節點和其它節點。其中xml文件的聲明包括三方面的內容:Version、Standalone和Encoding。下面將詳細列出常見tinyxml2的用法。

            注意:以下示例代碼針對本人下載使用的TinyXML2,官網的TinyXML2在不斷的完善和更新當中,最新的TinyXML2和本人的示例代碼可能會有出入。本人使用的TinyXML2是2015.9.23從官網下載的,已上傳至CSDN下載,見:TinyXML2。

            3.1創建XML文件

            示例代碼:

            創建結果:

            <?xml version="1.0" encoding="UTF-8" standalone="no"?><DBUSER/>123.2增加XML文件的節點

            示例代碼:

            //用戶類

            class Ur

            {

            public:

            Ur(){

            gender=0;

            };

            Ur(const string& urName, const string& password, int gender, const string& mobile, const string& email){

            this->urName=urName;

            this->password=password;

            this->gender=gender;

            this->mobile=mobile;

            this->email=email;

            };

            string urName;

            string password;

            int gender;

            string mobile;

            string email;

            };

            //function:inrt XML node

            //param:xmlPath:xml文件路徑; ur:用戶對象

            //return:0:成功; 非0:失敗

            int inrtXMLNode(const char* xmlPath,const Ur& ur)

            {

            XMLDocument doc;

            int res=doc.LoadFile(xmlPath);

            if(res!=0)

            {

            cout<<"load xml file failed"<<endl;

            return res;

            }

            XMLElement* root=doc.RootElement();

            XMLElement* urNode = doc.NewElement("Ur");

            urNode->SetAttribute("Name",ur.urName.c_str());

            urNode->SetAttribute("Password ",ur.password.c_str());

            root->InrtEndChild(urNode);

            XMLElement* gender = doc.NewElement("Gender");

            XMLText* genderText=doc.NewText(itoa(ur.gender));

            gender->InrtEndChild(genderText);

            urNode->InrtEndChild(gender);

            XMLElement* mobile = doc.NewElement("Mobile");

            mobile->InrtEndChild(doc.NewText(ur.mobile.c_str()));

            urNode->InrtEndChild(mobile);

            XMLElement* email = doc.NewElement("Email");

            email->InrtEndChild(doc.NewText(ur.email.c_str()));

            urNode->InrtEndChild(email);

            return doc.SaveFile(xmlPath);

            }

            創建結果:

            3.3查詢XML文件的指定節點

            Xml文件中,一個用戶節點存儲一個用戶的信息。因此,對用戶信息的增刪查改,即無論查詢節點、刪除節點、修改節點和增加節點,都需要獲取需要操作的節點。那么先實現一個根據用戶名獲取節點指針的函數:

            //function:根據用戶名獲取用戶節點

            //param:root:xml文件根節點;urName:用戶名

            //return:用戶節點

            XMLElement* queryUrNodeByName(XMLElement* root,const string& urName)

            {

            XMLElement* urNode=root->FirstChildElement("Ur");

            while(urNode!=NULL)

            {

            if(urNode->Attribute("Name")==urName)

            break;

            urNode=urNode->NextSiblingElement();//下一個兄弟節點

            }

            return urNode;

            }

            在以上函數的基礎上,獲取用戶信息的函數:

            3.4修改XML文件的指定節點

            驗證代碼:

            修改結果:

            3.5刪除XML文件的指定節點的信息總結;資料內容包括:C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK,嵌入式 等。。。后臺私信;資料;兩個字可以免費領取

            本文發布于:2023-02-28 21:01:00,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/1677716495100443.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:tinyxml.doc

            本文 PDF 下載地址:tinyxml.pdf

            標簽:tinyxml
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 九色精品在线| 国产chinese男男gaygay网站| 中文字幕av无码免费一区| 亚洲国产成人自拍视频网| 最新国产精品好看的精品| 69人妻精品中文字幕| 成人看的污污超级黄网站免费| 女被男啪到哭的视频网站| 麻豆国产成人AV在线播放| 四虎永久免费精品视频| 国内精品伊人久久久久AV一坑 | 天天综合天天色| 亚洲成av人片不卡无码久久| 99在线小视频| 色噜噜亚洲男人的天堂| 日产精品一区二区三区免费| 国产成人亚洲综合A∨在线播放| 亚洲欧美色中文字幕| 国产精品成人一区二区三| 一区二区中文字幕久久| 欧美国产综合视频| 久久婷婷色综合一区二区| 久久久久久久综合日本| 日韩精品一区二区三区日韩| 免费现黄频在线观看国产| 欧美一区二区三区欧美日韩亚洲| 女人喷液抽搐高潮视频| 国产亚洲综合另类色专区| 国产午夜影视大全免费观看| 中日韩精品视频一区二区三区 | 成年人尤物视频在线观看| 狠狠色噜噜狠狠狠狠7777米奇| 亚洲AV午夜成人无码电影| 在线观看91精品国产不卡| 国产粉嫩学生高清专区麻豆| 又爽又黄又无遮挡的视频| 国产精品成人午夜福利| 麻豆精品新a v视频中文字幕| 久久国产成人高清精品亚洲| 国产激情电影综合在线看| 高清美女视频一区二区三区|