2010-03-21 15 views
3

問題出在這裏:我需要通過PIO的2個引腳(1個時鐘,1個數據)來編程一些硬件。時序約束緊張 - 10ms時鐘週期時間。所有這些,當然,我保持非常高水平的服務(CAN總線,TCP/IP)。下游單元也通過將PIO引腳置位爲高電平來確認ACK。所以這個循環必須同時讀取和寫入。我需要在串行流中發送16位數據。在Coldfire/ucLinux上BitBanging PIO

有沒有一種確定的方法來做這種事情,或者我應該讓硬件人員添加一個PIC或某些東西。

在這個階段,我更願意避免像RTAI擴展那樣的外來物。我曾經看到過提到用戶模式IO,這暗示了一個可能的中斷驅動的驅動程序,但是卻失去了跟蹤。

歡迎任何指針。

回答

0

根據我的經驗,最簡單的方法是編寫內核驅動程序。當然,還不存在--1個時鐘,1個數據聽起來像i2c(雖然10ms週期聽起來比i2c慢得多),並且已經存在用於Coldfire的bit2ing驅動的i2c驅動程序。即使它不是i2c,也可能會發現使用i2c-adap-mcf_gpio作爲起點。

你真的很幸運,因爲它是一個10ms週期 - 默認內核tick是10ms(如果需要,它可以調整),所以你應該能夠使用合適的內核休眠功能。 (這一切也取決於你正在使用的內核。很容易在2.6內核中使用簡單的用戶模式I/O - 2.4內核中有功能,但它們可能需要更多工作。)

相關問題