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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于PIC32的鐵路隧道監(jiān)測系統(tǒng)

          基于PIC32的鐵路隧道監(jiān)測系統(tǒng)

          作者: 時間:2014-04-18 來源:網絡 收藏

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

          數據采集部分為:通過RA接口驅動線陣CCD ;由于線陣CCD輸出的是模擬信號,需要通過ADC接口轉換為MCU能夠處理的數字信號,并計算出當前光斑位置;使用I2C接口連接溫度傳感器LM75,獲取當前的溫度數據;使用RTCC接口獲取當前的實時時鐘和日歷。數據顯示部分:采用PMP接口驅動字符型液晶LCD1602,顯示當前的時間、溫度、光斑位置信息。數據存儲部分:采用SPI接口驅動常用的miniSD卡,并使用流行的文件操作系統(tǒng)FatFS,存儲時間、溫度、光斑位置數據。數據通信部分:采用USART接口,通過串口通信將數據傳輸到上位機電腦上,并使用圖形化編程軟件LabVIEW進行編程。

          圖2-4 整個系統(tǒng)框圖

          三 各個模塊介紹

          3.1線陣CCD

          3.1.1 線陣CCD工作原理

          CCD 是一種半導體器件,由一系列相鄰的MOS(金屬-氧化物-半導體) 存儲單組成。在外界光照條件下,能產生電荷,并存儲在 MOS 存儲單元里,產生電荷的多少與入射光的強度和照射時間成正比。在一定的外加電壓驅動下,CCD中存儲的電荷可以一個接一個的順序移動,通過輸出放大器在輸出端產生與存儲電荷成正比的輸出電壓。CCD的一個工作周期分為兩個階段:光積分階段和電荷轉移階段. 光積分階段實現光電荷的積累,與此同時將上一幀移位寄存器中的電荷輸出并清空像元勢阱中的無效電荷;電荷轉移階段實現光電荷向移位寄存器的轉移。CCD 的感光陣列與移位寄存器是分開的,像元接受外界光源照射產生電荷,通過轉移柵控制光生信號電荷向移位寄存器轉移,一般信號轉移時間遠小于光積分時間。轉移信號控制轉移柵,轉移柵關閉,感光陣列收集光信號,此時感光陣列和移位寄存器之間為阻斷態(tài),不會發(fā)生電荷轉移現象。

          3.1.2 東芝TCD-1501簡介

          TCD-1501是由東芝半導體生產的一款具有5000個有效像元的線陣CCD,單12V供電,有極高的靈敏度,像元大小為7um×7um,典型的時鐘脈沖頻率為1MHz,最大可以達到12MHz。實物圖如圖所示:

          圖3-1 實物圖

          3.1.3 驅動TCD1501

          TCD1501的時序圖如圖2-2所示,使用Altium Designer構建的原理圖如圖2-3,采用的RA0到RA5這5個端口輸出圖2-2的時序。由于PIC內部ADC轉換的范圍為0到3.3,所以將輸出的結果由兩級比例差分放大電路LM358處理,第一級把CCD_OS與CCD_DOS相減,第二級構成電壓跟隨器,使用電位器R5等比例縮寫輸出電壓。

          圖3-2 TCD1501時序圖



          關鍵詞: PIC32 鐵路隧道監(jiān)測 PIC32MX460F512L TCD1501

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();