臺州市路橋安鼎安自動化設備有限公司
聯系人:張玲英 (女士)
電 話:18967697775 /057682913172
郵 箱:1105082586@qq.com
地 址:浙江省臺州市路橋專業工業設備市場A3-1
網 址:www.wmcmuaythaicamp.com
專業的編程器廠商是如何做到比山寨的產品好呢?不是廣告打得更多,也不是產品賣得更貴,而是技術創新。
普通編程器以低廉的價格獲得很多個人和工程師的喜愛,但在99%的工廠生產線上,為何看不到這類產品呢?因為工廠需要更專業的編程器產品來滿足多芯片、高效率的要求。工廠用的編程器又有哪些技術創新呢?
一、主控MCU+FPGA構架
FPGA的I/O可編程,這給邏輯設計和PCB設計帶來一定的靈活性和獨立性。在編程器的硬件實現中,FPGA是一種“半定制”的芯片,這個特性對編程器能與各類封裝芯片互連有很大幫助作用。
MCU的管腳功能都是固定的,與外部接口通常使用IO口或者總線連接。普通IO口其實本質就是寄存器,這些寄存器都有一個相應的地址,操作IO口就是操作寄存器;片內外設相對來說,是一個具有特定功能模塊,其內部包含多個寄存器控制不同的功能執行,但是這些寄存器也有固定的地址。通過存儲器映射的方式,把片內外設和CPU連接起來,組成一個系統。
值得注意的是,這些片內外設對外接口都是連接固定的管腳,如果要對這些外設控制完成特定的功能設計,實質上已經隱含了對這些管腳控制了。比如說,MUC的IIC接口的SCK和SDA分配在99和100腳,那么所有IIC接口的存儲芯片都必須與這兩個腳連接,如圖3所示:
各類需要編程的芯片如果要與MCU連接,就必須與之對應的接口連接,對于復雜腳多的芯片,這對PCB的布局布線有很大的局限性和挑戰性。
FPGA就以靈活性見長,可編程IO就是其中的一個重要功能??删幊蘄O給PCB的設計帶來靈活性,可以簡化PCB的布局布線,并且在設計的過程中,還可以根據走線的走向更改管腳的連接。另外,在FPGA內部邏輯設計過程中,可以先把功能模塊設計與管腳分配兩步獨立開來,先完成內部邏輯功能之后,再根據實際情況分配管腳。因此,可編程IO給FPGA邏輯設計和PCB設計帶來一定的靈活性和獨立性,其在這個環節中充當一個“連接者”的角色,為邏輯設計和PCB設計鋪路架橋,如圖4所示。
實際FPGA內部并不像圖4那么簡單,這里只是為了形象說明可編程IO可以使內部邏輯和PCB可以相對獨立設計。對于同類接口,不必因為PCB改變而更改時序邏輯,只需要更改引腳分配,大大簡化了PCB的布線難度。
二、合理安排流水線
稍微思考下,就會發現,編程器在編程過程中是按照這樣一個順序執行的:從上位機取命令數據→命令解析→執行。這個過程是一個按順序循環執行的,對應的操作為取指、譯碼和執行,解釋如下:
取指----從命令FIFO中取出指令。
譯碼----根據指令,產生對應的控制信號。
執行----執行擦除、編程或者檢驗操作,或者設置相關參數。
如果沒有采用流水線技術,時空圖如圖5所示。
從圖5可知,每條命令都要經過取指、譯碼和執行后才能進行下一條命令,這嚴重影響系統的效率。Z致命的是,取指、譯碼和執行都不能同時工作,只有完成取指之后才能譯碼,譯碼之后才能執行。
因此,編程器做出了改變,采用了“流水線”技術。根據編程器的操作步驟,可以把工作流程分為取指、譯碼和執行三部分,每一部分負責自己的工作。這樣不僅細化了整個工作流程,而且能夠使三部分同時工作,從而提高了并行度,進而提高了工作效率。在FPGA硬件實現上,這三部分分別對應三個電路,并且在它們之間都插入寄存器組,組成三級流水線,如圖3所示。這樣,在每個時鐘周期下,取指、譯碼和執行部分同時使用上級傳下來的數據工作,并且在下一個周期把結果傳給寄存器以供下一級電路使用。在這個過程中,寄存器起到了暫存結果的作用。
相關的命令執行在時間上是交疊在一起的,也就是說三條命令同時工作(經過首次延遲之后)!比如,在時刻T4,指令N+3在取值,指令N+2在譯碼,指令N+1執行。值得注意的是,在某一時刻,它們雖然同時工作,但操作的都不是同一條指令。另外,在每個周期,都有一條命令在“執行”,也就是說一個周期產生一個結果,而無流水線技術需要3個周期才有一個結果,相比之下,工作效率提高了3倍??上驳氖?,流水線技術會提高頻率上限。
在FPGA設計上,需要估算取值、譯碼和之下三部分的延時,盡量做到它們之間的延時相等或者接近,才能發揮流水線的優勢。另外,理論上,流水線級數越多,工作頻率越快,效率相對也高。
三、總結
通過硬件與軟件的高效搭配,專業編程器才能穩定發揮專業職能,支撐起工廠批量穩定編程的重任。