<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于單片機與FPGA可調延時(shí)模塊的設計

基于單片機與FPGA可調延時(shí)模塊的設計

作者: 時(shí)間:2012-05-29 來(lái)源:網(wǎng)絡(luò ) 收藏

系統結構框圖如圖1。其硬件結構比較簡(jiǎn)單,主要由P89C51RD、RS-232/TTL接口電路MAX232和可編程邏輯器件三部分組成。P89C51RD2是上位PC機和的連接紐帶,它通過(guò)并口發(fā)送數據給,另一邊通過(guò)RS-232/TTL接口芯片與PC機進(jìn)行串行通訊;PC機主要功能是實(shí)現延時(shí)調整的可視化操作;FPGA是延時(shí)調整處理的硬件實(shí)現,將PC送過(guò)來(lái)的延時(shí)調整參數輸入FPGA,FPGA在單片機的控制下對信號進(jìn)行延遲處理,最后送入相應傳輸通道。某些系統使用現場(chǎng)存在較強的電磁干擾,模塊的設計考慮信號隔離問(wèn)題,故對串行接口進(jìn)行了電氣隔離,強化了PC機和模塊通訊的安全系數。

本文引用地址:http://dyxdggzs.com/article/190342.htm

  延時(shí)模塊正常上電后,單片機P89C51RD2首先從數據存儲區讀出最近一次存儲的延遲時(shí)間、信號通道等參數,并轉發(fā)到FPGA數據接口。FPGA根據接收到的參數,首先篩選出目標地址以便切換到對應的信號通道,然后再根據時(shí)間對該通道進(jìn)行預定的延時(shí),恢復先前調整好的延時(shí)信號。在模塊運行期間,P89C51RD2實(shí)時(shí)監測、接收來(lái)自上位PC機發(fā)送的新延時(shí)數據。如果需要對某一路信號的延時(shí)量進(jìn)行調節,通過(guò)PC機的串口發(fā)新數據,P89C51RD2中斷收到新數據后,將數據分成兩路處理:一路進(jìn)入到單片機的數據存儲區,待下次上電讀取使用;另一路則轉發(fā)至由FPGA控制的延時(shí)控制,實(shí)現信號的延遲時(shí)間調整。

  塊使用的P89C51RD2是PHILIPS公司內核基于8 位80C51單片機的派生產(chǎn)品,它們在完全保留80C51 指令系統和硬件結構的大框架外,還具有多方面的功能加強、擴展、翻新和創(chuàng )新,其中在應用中編程(IAP:In-Application Programming)是最顯著(zhù)特點(diǎn)之一。在應用中可編程是指MCU可以在系統中獲取新代碼并對自己重新編程,即用程序來(lái)改變程序。P89C51RD2的IAP功能實(shí)現是通過(guò)PHILIPS 公司提供的BootROM 固件來(lái)完成的,它位于0FC00H?0FFFFH空間,與閃存空間重疊(見(jiàn)圖2)。固件中已經(jīng)固化有擦除和編程等子程序,PHILIPS 公司提供了尋址該固件的方法,只要用戶(hù)程序簡(jiǎn)單調用BootROM中帶適當參數的公共入口,即可實(shí)現所需要的操作。

P89C51RD2閃存結構見(jiàn)圖2,它具有如下特點(diǎn):

  1. 其閃存空間是分塊的64kB的閃存空間,共分5塊,由低到高分別為8kB(BLOCK0)、8kB(BLOCK1)、16kB(BLOCK2)、16kB(BLOCK3)以及16kB( BLOCK4);

  2. 每一塊都可以單獨擦除;

  3. 在程序中可以調用IAP功能對閃存中的每一字節進(jìn)行單獨編程。

  正是由于上述三個(gè)特點(diǎn),在不外擴展存儲器情況下,將程序空間剩余下的閃存空間作為數據空間,把單片機接收中斷采集到的信號通道、延遲時(shí)間等參數存儲下來(lái),實(shí)現掉電數據保存。

  軟件設計

  整個(gè)延時(shí)模塊的軟件包括了PC機發(fā)送參數程序,單片機接收并存儲參數程序和FPGA信號延時(shí)處理程序。

  PC機發(fā)送參數程序是用戶(hù)將PC機的串口與模塊連接,通過(guò)PC機的發(fā)送程序界面,很容易對信號進(jìn)行延時(shí)調整。發(fā)送程序采用VC作為編程語(yǔ)言,調用串口控件,設計方便且界面簡(jiǎn)潔,界面如圖3所示。發(fā)送的每個(gè)數據幀8位,包括延遲時(shí)間和信號通道兩個(gè)參數,其中高三位是要調整的信號通道,后五位表示延遲的時(shí)間。發(fā)送程序中,對界面中的“+”或“?”進(jìn)行一次操作,PC就通過(guò)串口向單片機連續發(fā)送8路信號延時(shí)參數,即只要調節了任一路信號的延時(shí),PC機就會(huì )連續發(fā)送8個(gè)數據幀。

  單片機軟件設計

  單片機主要完成與PC之間的通信,數據的存儲和上電數據的讀取。程序采用C51編寫(xiě),編譯采用當前編譯效率最高的C51編譯器KEIL。軟件流程圖見(jiàn)圖4。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>