<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PSoC3 UDB的曼徹斯特編碼及應(yīng)用

          基于PSoC3 UDB的曼徹斯特編碼及應(yīng)用

          作者:田江學(xué) 賽普銳思半導(dǎo)體主任應(yīng)用工程師 時(shí)間:2011-09-01 來(lái)源:電子產(chǎn)品世界 收藏

          摘要:本文介紹使用 UDB實(shí)現(xiàn),并基于該編碼與LED 恒流驅(qū)動(dòng)芯片TLS3001通信實(shí)現(xiàn)對(duì)LED系列的控制。
          關(guān)鍵字:, UDB,

          本文引用地址:http://www.ex-cimer.com/article/123138.htm

          1, 概述
                  在曼徹斯特(Manchester)編碼中,每個(gè)二進(jìn)制位(碼元)的中間都有電壓跳變。用電壓的正跳變表示“0”,電壓的負(fù)跳變表示“1”。由于跳變都發(fā)生在每一個(gè)碼元的中間位置(半個(gè)周期),接收端就可以方便地利用它作為同步時(shí)鐘,因此這種又稱為自同步曼徹斯特編碼。如圖1所示。


           
                                                  圖1,曼徹斯特編碼與邏輯電平對(duì)應(yīng)關(guān)系

                  從圖1可以看出曼徹斯特編碼本身并不復(fù)雜,在有些應(yīng)用中可以采用單片機(jī)軟件編程實(shí)現(xiàn)編碼。但若應(yīng)用系統(tǒng)要求較高的數(shù)據(jù)傳輸速率,比如本文后面介紹的LED控制中要求數(shù)據(jù)傳送速率范圍在100KHz~2MHz時(shí),用軟件實(shí)現(xiàn)曼徹斯特編碼可能達(dá)不到速率要求。本文將采用 UDB實(shí)現(xiàn)曼徹斯特編碼,即用Datapath實(shí)際基本控制邏輯,用PLD實(shí)現(xiàn)狀態(tài)機(jī),由于其采用硬件實(shí)現(xiàn)故能達(dá)到速率要求。

                  PSoC3使用基于單循環(huán)流水線的高性能8051內(nèi)核 (67MHz/33MIPS),提供業(yè)界廣泛采用的5.5V至0.5V電壓范圍和低至200nA的休眠電流,可以滿足極低功耗的應(yīng)用場(chǎng)合。PSoC3的高性能模擬子系統(tǒng)和數(shù)字系統(tǒng)都擁有可編程通路,允許將任何模擬或數(shù)字信號(hào)(包括可編程時(shí)鐘)分配到任何通用I/O引腳,這為使用者提供了真正的“系統(tǒng)級(jí)”可編程能力。

                  UDB(Universal Digital Blocks)是PSoC3可編程數(shù)字系統(tǒng)的核心功能,由PLD和Data path組成,可以創(chuàng)建各種通用外設(shè)和定制化功能。PSoC3的數(shù)字邏輯部分由多個(gè)UDB通過(guò)矩陣和可編程互聯(lián)組成,PSoC3、UDB和Datapath的關(guān)系如下圖2所示。

           

                                                        圖2,PSoC3、UDB和Datapath關(guān)系示意圖

          2,曼徹斯特模塊設(shè)計(jì)
                  采用PSoC3的UDB 實(shí)現(xiàn)曼徹斯特編碼,就是用Datapath實(shí)現(xiàn)簡(jiǎn)單的控制邏輯,在PLD中用Verilog語(yǔ)言描述曼徹斯特模塊功能的過(guò)程。在PSoC Creator中設(shè)計(jì)的曼徹斯特模塊如下所示:
                  

                   該模塊只有一個(gè)時(shí)鐘輸入和一個(gè)曼徹斯特編碼輸出,要編碼的數(shù)據(jù)是通過(guò)Datapath的FIFO輸入的。Datapath的配置可采用提供的“Datapaht Configuation Tool”工具實(shí)現(xiàn),如圖3所示:

           

                                                   圖3,Datapath Configuration Tool

                   基于Datapath設(shè)計(jì)曼徹斯特模塊的步驟如下:
          1),寄存器規(guī)劃
                  A0,用做移位寄存器
                  F0,用做暫存下一個(gè)數(shù)據(jù)的FIFO,當(dāng)A0為空時(shí)從F0中l(wèi)oad 數(shù)據(jù)到A0
          2),狀態(tài)機(jī)
                  狀態(tài)機(jī)是曼徹斯特模塊功能的具體實(shí)現(xiàn),通過(guò)Verilog語(yǔ)言描述在PLD中運(yùn)行,如圖4所示:
           


                                                      圖4,曼徹斯特模塊狀態(tài)機(jī)

                   數(shù)據(jù)的每一個(gè)位需要兩個(gè)時(shí)鐘來(lái)產(chǎn)生曼徹斯特編碼輸出,即Shift/NOP或者Load&Shift/NOP過(guò)程。當(dāng)沒(méi)有數(shù)據(jù)時(shí),verilog語(yǔ)言描述為狀態(tài)機(jī)進(jìn)入IDLE階段并輸出0。

                  由于從F0 下載數(shù)據(jù)到A0時(shí)一次只能下載1byte 數(shù)據(jù),為了保證曼徹斯特編碼頻率的一致性,在每個(gè)數(shù)據(jù)字節(jié)移位到最后1bit的同時(shí)從F0下載數(shù)據(jù)到A0,即Load&Shift階段。

          3),動(dòng)態(tài)配置區(qū)設(shè)置
                  Datapath的動(dòng)態(tài)配置區(qū)功能如表一所示:


                  在Datapath Configuration Tool中的設(shè)置如表二所示:
                  表二,Datapath動(dòng)態(tài)區(qū)配置


          4),靜態(tài)配置區(qū)設(shè)置
                  靜態(tài)配置區(qū)設(shè)置比較簡(jiǎn)單,將SHIFT SEL設(shè)置為SL從最高為開始左移;將F0 INSEL設(shè)置為BUS以表示F0作為輸入FIFO;將F0 ASYNC設(shè)置為ASYNC。其在Datapath Configuration Tool中的實(shí)現(xiàn)如圖5所示:
           


                                                                  圖5,Datapath靜態(tài)區(qū)配置

          3,基于曼徹斯特編碼的LED控制
                  這是一個(gè)基于PSoC3 UDB的應(yīng)用,采用前面介紹的曼徹斯特編碼模塊與三通道LED 恒流驅(qū)動(dòng)芯片TLS3001通信以控制LED系列。系統(tǒng)應(yīng)用框圖如圖6所示,其中TLS3001_2與TLS3001_3和TLS3001_1一樣都接有LED燈的。


           
                                                                     圖6,LED控制應(yīng)用框圖

                  TLS3001 是單線傳輸、三通道LED 恒流驅(qū)動(dòng)芯片,內(nèi)置12 位灰階控制的PWM調(diào)制功能。3 個(gè)恒流輸出通道所輸出的電流值不受輸出端負(fù)載電壓影響,并提供恒定一致的輸出電流,用戶可以選擇不同的外接電阻來(lái)調(diào)整輸出電流,調(diào)整范圍從0 到30mA。內(nèi)置電壓調(diào)節(jié)器,使芯片正常工作在5~17V 的較寬電壓范圍內(nèi),輸出端口最大耐壓達(dá)到17V。

                  根據(jù)TLS3001芯片要求,在芯片上電后必須先發(fā)一次同步幀,以便芯片檢測(cè)通訊的波特率。同步幀的格式為:15’b111111111111111+4’b0001+11’b00000000000,在發(fā)送同步幀后必須延時(shí)一段時(shí)間再發(fā)送數(shù)據(jù)幀。在發(fā)送若干幀數(shù)據(jù)后,重新發(fā)送一次復(fù)位幀,等待1ms 之后,再發(fā)送一次同步幀, 以便芯片消除積累誤差, 復(fù)位幀格式為:15’b111111111111111+4’b0100d. 數(shù)據(jù)幀格式為:15’b111111111111111+4’b0010(數(shù)據(jù)頭)+ 第一個(gè)芯片39bit 數(shù)據(jù) + 第二個(gè)芯片39bit 數(shù)據(jù) + …… + 第n 個(gè)芯片39bit 數(shù)據(jù)。其數(shù)據(jù)時(shí)序如圖7所示:
           


                                                                           圖7,LED控制時(shí)序

          這樣,就使用前面定義的曼徹斯特模塊發(fā)送編碼流,以對(duì)LED燈的控制,控制軟件流程如圖8所示:
           


                   圖8,LED軟件控制流程

          用示波器觀測(cè)編碼輸出管腳的波形,其時(shí)序完全能滿足TLS3001芯片的要求,如下圖9所示,其中通道2為時(shí)鐘輸出,通道1為Manchester編碼輸出。


                                                                       圖9,Manchester編碼波形

          4,結(jié)束語(yǔ)
                  本文主要介紹了PSoC3的UDB功能,并用UDB實(shí)現(xiàn)曼徹斯特編碼模塊的過(guò)程。由于其硬件實(shí)現(xiàn)的方式故可輸出很高的編碼頻率。



          關(guān)鍵詞: Cypress PSoC3 曼徹斯特編碼

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();