2011年9月14日 星期三

學習 Verilog HDL

因為工作需要使用 Xilinx FPGA,我開始學習 FPGA 以及 Verilog。
以下是我的學習過程。

我買了兩本原文書,但幫助不大。目前只讓我知道有 WebPACK 這玩意。

[2011/10/08修正:在開始閱讀我要研究的 j1 Forth CPU 後,其中的一本,Digital Dsign and Verilog HDL Fundamentals 開始有幫助,我覺得這一本寫得很清楚。不過,它缺少了 Verilog 2001 的內容,如 generate/genvar 等。對 generate/genvar 等的說明可以參考 "The IEEE Verilog 1364-2001 Standard, What's New, and Why You Need It" 一文。
]

下載 WebPACK。

閱讀 Xilinx ISE In-Depth Tutorial:
http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/ise_tutorial_ug695.pdf

至於 Verilog,弟弟傳了 OVIVerilog HDL LRM Version 1.0 做為參考手冊。

此外,以下連結提供了許多資訊:http://www.asic-world.com/verilog/verilinks.html

以下連結中的 on-line reference guides 也很值得參考: http://www.sutherland-hdl.com/reference-guides.php







2011年9月3日 星期六

Why EtherCAT?

以下摘錄自 EtherCAT - the Ethernet fieldbus 這篇文章。

EtherCAT 的特點:
  1. real time 能力。
  2. 多種 Topology。商用 Ethernet 採用星狀的 Topology。EtherCAT 可以使用星狀或環狀或所謂的 E-Bus,以減少配線降低成本。
  3. Only full duplex,分離的 Tx, Rx 線。
  4. Without collision detection and retransmission.
  5. Master/slave 架構。
  6. Master 不需特別的晶片。因此任何有商用 Ethercat 的電腦都可以當 master。
  7. 可和其他 Ethernet 裝置並存於同一 Bus,可以使用商用的 switch。
  8. 就算是將 2bit 的 I/O 獨立做成一 slave 也不會增加太多成本。
  9. 最大效能。Ethernet 頻寬儘量用於傳送 user 的 data。
  10. Short cycle time, < 100 microsecond。
每個裝置都有 64k bytes 的 memory。
EtherCAT 的 telegrams 有兩種可能結構,使用 EtherCAT Header 或是 UDP Header。如果使用 EtherCAT Header ,則第一個裝置必須是一個能處理 MAC 定址的裝置。

EtherCAT 的 telegrams 內有多個 EtherCAT commands,一般來說,一個 command 針對一個 device,但是為了要處理極小的,比如只有 2bit 的 I/O devices,EtherCAT 使用 FMMU 使得一個 EtherCAT command 可以下給多個 devices。FMMU 的 logical address space 是 4GB,因此,對 master 來說,裝置可被視為 distributed memory。

遠距離傳輸時可以使用一般的 Ethernet Cable 或是光纖。較近距離的裝置可以使用以 LVDS 為基礎的 E-Bus。唯一要注意的是必須滿足 EtherCAT full duplex 的要求。

EtherCAT Slave 會從 ethernet telegram 讀取資料,並能插入資料交給下一個 slave。由最後一個 slave 將所有 slaves 的資料回傳給第一個 slave,再由第一個 slave 回傳給 master。(在文章中另一部份說最後一個 slave 將資料回傳給 master。這可能和 EtherCAT telelgrams 的兩種結構有關。當採用 EtherCAT Header 時,第一個 Device 會是有 MAC 定址能力的 device。)


EtherCAT Slave 能偵測斷線而將要送給下一站的資料回傳給上一站。作法請見文件。

EtherCAT Slave 也能偵測斷線回復。作法請見文件。

EtherCAT 使用distributed clocks 來保証所有 slaves 的時間一致。Master 每隔一段時間就會送出特別的 telegram 以較正時間。

除了以上所列,EtherCAT 還提供了不同的定址方法,internode 通訊,同時也允許傳送 Ethernet 訊息。詳情請見文件。

2011年9月2日 星期五

自動化機械展中的工業網路大戰

昨日參觀台北南港展覽館的自動化機械展,想瞭解 EtherCAT 中 E-Bus 的長相。因為,從 Beckhoff 公司的圖片中只見到每個 I/O module 有六個名為 E-Bus 的突出物,完全無法想像當插入新模組時,這新模組怎麼和其他模組相連。

在展場中找尋 Beckhoff 的 EtherCAT 模組時,我先遇到了三菱、Panasonic、Proface、凌華等公司的 PLC。Panasonic 的擴充模組靠一個小接口和主機相連,那接口的形狀限制了擴充模組插拔的方式:只能從左側或是右側插拔,無法從正面插拔。因此,當有多個延伸模組時,必須移動其他的模組才能拔出想要檢修的模組。

為此,當我看到 Beckhoff 的 E-Bus 時,不得不為其設計驚嘆。E-Bus 由六片大銅片構成,模組和模組靠銅片的彈性相接,彷彿放大版的 Ethernet 接口。它可以正面插拔。

對於 E-Bus 我還有一個疑問:它為什麼要用這麼寬的銅片?因為要提供絕佳的接觸嗎?

在現場中,Mechatrolink III 、 SSCNET 及 CC-Link 各有其支持者。PLC 的大廠 OMROM 從 Mechatrolink II 倒向 EtherCAT,Mechatrolink III 支持者安川(Yaskawa)悄悄提供了 EtherCAT 界面的 Drives,讓我感覺到 EtherCAT 在未來的戰事上,至少在必須整合運動控制的市場,獲勝。

會場中展示 Beckhoff 產品的公司員工告訴我台達電計劃明年推出 EtherCAT 的產品,而台達電一直抱怨授權費太高。支持 Mechatrolink III 的安川員工告訴我 FPGA IP 的授權費用高達數十萬。這些,讓我有些許震驚。如果 FPGA IP 的授權費高達數十萬,那顯然不是我目前能採用的。同時,如果台達明年會推出 EtherCAT 產品,那麼我們引進台達 DMCNET 的計劃是否該延後呢?

此外,我發覺自已的一項疏失:EtherCAT似乎不能和 Ethernet/IP 並用?

在展場中另一項吸引我目光的是凌華的 MotionNet,透過在馬達 Drive 端小小的轉接器,MotionNet 可以控制不同公司的馬達。可惜,使用的是 Pulse command,不是我想走的方向。

Note: 以下是我之前詢問過的 EtherCAT IP Core 的價格,那每年都要繳的維護費,真讓人無語啊...