在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于GUI軟件配置UCD3138數(shù)字電源PMBUS命令

            基于GUI軟件配置UCD3138數(shù)字電源PMBUS命令

            作者: 時(shí)間:2013-06-25 來源:網(wǎng)絡(luò) 收藏

            而在pmbus_read_two_byte_handler()函數(shù)中的關(guān)鍵代碼為:

            pmbus_buffer[1] = value >> 8;

            pmbus_buffer[0] = value 0xff;

            pmbus_buffer 字節(jié)中的數(shù)據(jù)會(huì)最終上傳到GUI 軟件中。

            (4)、數(shù)據(jù)轉(zhuǎn)換函數(shù)的設(shè)計(jì)

            ◎ Linear Data Format 數(shù)據(jù)格式

            上文提到,來自GUI 的數(shù)據(jù)遵循PMBUS 協(xié)議,其格式為Linear Data Format。如圖5,其低11 位為“尾數(shù)”,以補(bǔ)碼形式保存;高5 位為“指數(shù)”,亦是以補(bǔ)碼形式保存。該數(shù)據(jù)與實(shí)際數(shù)據(jù)的關(guān)系為:X=Y× 2N 。

            PMBUS 協(xié)議中的Linear Data Format

            圖 5:PMBUS 協(xié)議中的Linear Data Format

            ◎ ARM 編譯器中的浮點(diǎn)型數(shù)據(jù)

            如圖6,為ARM 編譯器中對(duì)單精度浮點(diǎn)型數(shù)據(jù)的存儲(chǔ)格式。其最高位為符號(hào)位,接下的8 位為指數(shù),后面的23 位為尾數(shù)。在編譯器中定義的浮點(diǎn)數(shù)據(jù),將以該格式存儲(chǔ)在硬件存儲(chǔ)空間。

            ARM 編譯器中的浮點(diǎn)型數(shù)據(jù)格式

            圖 6:ARM 編譯器中的浮點(diǎn)型數(shù)據(jù)格式

            ◎ 定義結(jié)構(gòu)體和聯(lián)合體

            如下, 定義了結(jié)構(gòu)體FLOAT_ELEMENTS , 用以保存上文提到的浮點(diǎn)型數(shù)據(jù)。還定義了聯(lián)合體FLOAT_OPEN,成員包括浮點(diǎn)型數(shù)據(jù)“all”和結(jié)構(gòu)體類型數(shù)據(jù)“bit”,用以保存轉(zhuǎn)換完畢的浮點(diǎn)型數(shù)據(jù)。

            struct FLOAT_ELEMENTS {

            Uint32 SIGN:1;

            Uint32 EXPONENT:8;

            Uint32 MANTISSA:23;

            };

            union FLOAT_OPEN {

            float all;

            struct FLOAT_ELEMENTS bit;

            Uint32 word;

            };

            ◎ 轉(zhuǎn)換函數(shù)linear11_to_float()

            該函數(shù)完成將來自GUI 的Linear Data Format 格式的數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù),并作為返回值返回。包含的關(guān)鍵代碼如下。

            定義變量,包括整型“mantissa”和“exponent”及結(jié)構(gòu)體變量“final”。

            int16 mantissa, exponent;

            union FLOAT_OPEN final;

            下面代碼完成對(duì)輸入?yún)?shù)的分析,并擴(kuò)展到16 位。如果輸入?yún)?shù)的尾數(shù)是負(fù)值,前5 位補(bǔ)1;如果是正值,前5 位補(bǔ)0。

            if(linear11 0x0400)// if mantissa is negative

            { mantissa = linear11 | 0xfc00; //put it in there at minimum mantissa }

            else

            { mantissa = linear11 0x07FF; }

            下面代碼首先是將mantissa 左移16 位(16+16=32),以使其數(shù)據(jù)長度符合單精度浮點(diǎn)型數(shù)據(jù)的長度,然后exponent 減去16,保證了原始數(shù)據(jù)的大小沒有變化。

            final.all = ((int32)mantissa) 16; //set it up for minimum exponent.

            exponent = (linear11 >> 11) - 16; //get exponent to match shifted value

            下面代碼首先判斷單精度浮點(diǎn)型的指數(shù)是否為負(fù)。如果是負(fù),則改寫其為零,原因是對(duì)應(yīng)的“輸出過流保護(hù)點(diǎn)”不會(huì)出現(xiàn)負(fù)值;如果是正,則將指數(shù)信息放置在單精度浮點(diǎn)型數(shù)據(jù)的指數(shù)位置。

            if((final.bit.EXPONENT + exponent) 0)//if it's so low it will wrap

            { final.bit.EXPONENT = 0; }

            else

            { final.bit.EXPONENT = final.bit.EXPONENT + exponent; }

            上述操作完畢后,final.all 中就保存了轉(zhuǎn)換后的浮點(diǎn)型數(shù)據(jù),因此可以作為返回值返回。

            return final.all;

            2.4 操作流程圖

            上述所有操作的流程圖見圖7。

            UCD3138 接收信息流程圖

            圖 7: 接收信息流程圖

            3 刪除GUI 信息欄

            圖 8:刪除GUI 中的信息欄

            此時(shí)重新編譯軟件并下載到 后,GUI 中將不再會(huì)出現(xiàn)該信息欄,見圖4。但 軟件中依然保留有對(duì)該P(yáng)MBUS 命令的接收、轉(zhuǎn)換和處理等函數(shù),亦需要?jiǎng)h除,在此不再贅述。

            4 小結(jié)

            通過上文兩個(gè)實(shí)例的分析可知,用戶在GUI 軟件中可以靈活的添加或刪除PMBUS 命令對(duì)應(yīng)的信息欄,提高了GUI 的靈活性。該操作主要包括PMBUS 命令的使能或屏蔽及UCD3138 軟件添加或刪除相應(yīng)處理函數(shù)等兩大部分。



            關(guān)鍵詞: 數(shù)字電源 UCD3138

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉