作者CuckooBoy (阿書)
看板Programming
標題Re: [問題] VB V.S COM1
時間Sun Jul 8 01:02:08 2007
講到RS232
想問一下
為什麼一般都看到大家用9600
我看XP不是有到115200
還是115200不行用?或特別的線或者一些原因才能用?
※ 引述《MasterChang (我愛ASM)》之銘言:
: ※ 引述《ggg12345 (ggg)》之銘言:
: : 謝謝您的回應, 我的問題是想知道兩件事:
: : 1.Serious I/O 與 雙向 parallel I/O(PC Printer 界面)
: : 都能接受 input signal , 在現在的 Win2K/XP OS 下,
: : Overlap I/O 狀況能接收到多快的連續 bit rate 輸入.
: 你的問題在PC上有兩個點要考慮
: 1.硬體介面的速度
: 2.OS處理這些I/O時的負擔。
: 假設你的串列i/o是UART或是PS/2,平行埠是Palraller Port
: 的話。由於你已經不能用早期DOS下direct i/o方式控制,所
: 必須透過driver來控制。UART部分有到921600bps的選項,不
: 過我沒用過,你可以試試。 你也可以用示波器觀察每次發送
: 資料間的時隔。
: Parallel Port根據你使用的協定,速度大概在1MB/sec~2MB/sec
: ,所以單一Pin差不多就是 1M~2M bps,但是使用過的經驗。
: 大約只有80%不到的速度。受到OS本身及PArallel Port driver
: 的影響。driver則是使用網路上的io.dll。
: : 2.假設只使用類似 PIO 的 in , out 兩條訊號線(如 printer
: : I/O, 但與之的 I/O port 位置不同), 這個非BIOS 的 I/O
: : driver routine 要如何用那些工具配合安裝才能讓 Win2k/
: : XP os 能認得這個額外 driver , WinXP OS 又如何協助
: : user space 的 Client AP 直接使用 I/O port , 假設 PIO
: : input 線需要 interrup signal 通知 Client AP 時, 這個
: : interrupt 要如何配合 os 設定, 才能產生 event flag ?
: PIO是哪裡的PIO?PCI卡的還是?
: 1.你的driver要能提供可呼叫介面,並定義在h檔。例如控制Parallel Port
: 的io.dll就會提供一個io.h可以用。
: 2.或是直接寫成像COM一樣的檔案型裝置,並根據檔案使用定
: 義對於CreateFile(),ReadFile()和WriteFile()對應的call function
: 進行關連建立的動作。一般232擴充卡屬於這類。
: 詳細的部分你需要參考WDM書籍。interrupt signal不會讓User
: Mode 的AP處理,而是Driver 在Kernel mode下處理後將user define
: 的msg傳入讓軟體知道(像WM_)其實就是一種message。uer space
: 要做i/o輸出時,要做的工作就是把資料Ready,呼叫WriteFile()
: ,等到driver可以工作時,自然就會把資料寫到i/o上。
: 滿久沒寫WDM和linux driver,有錯的話請直接改....
: : 最近發現 組語教科書(如 Assembly Language For INTEL-BASED
: : Computer)除了 bios int 說明, 不再有任何 I/O 界面 driver
: : 的其他相關說明與範例, 只有一個使用 speaker 發聲的例子是
: : 在 VM86 dos prompt 下執行. 以致感覺這課程的教學就變得毫
: : 無可用性. 業界要求教學生組語的願望跟任課教師是對不攏的.
: : 假設裝了四個以上的Comm serious I/O port card , 這問題
: : 應該會因額外的 I/O card 而發生同樣的問題吧.
: : 如果您知道細節, 麻煩能賜知, 先謝謝 !
: 廠商會提供對應的driver,裝好就直接像PC上的COM使用即可。
: PC speaker的例子其實可以換成用音效卡發聲,這個在windows
: programming 5/e就是基本範例。
: PC喇叭不是不能用,只是現在聽到PC喇叭發聲機會只有開機和
: 主機本出問題才比較有機會聽到。
: 或是用光碟開機版的DOS7.0或FreeDOS 還是可以用這些書的東
: 西,而且光碟開機版的也不用裝在電腦上,也是滿方便的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.6.78
推 MasterChang:那是因為接的裝置速度只有9600,裝置 59.104.147.167 07/08 10:52
→ MasterChang:能跑到115200就可以用這個連線速度。 59.104.147.167 07/08 10:53
推 CuckooBoy:接的裝置?你是指...微處理器或FPGA那端? 123.195.6.78 07/08 11:58
→ nedbob:外部裝置 的速度通常只到9600 59.115.79.18 07/08 15:57
→ CuckooBoy:不懂外部裝置是指什麼? 123.195.6.78 07/08 22:56
→ CuckooBoy:XP以外,主機上的COM1算外部裝置囉? 123.195.6.78 07/08 22:56
→ CuckooBoy:看過有人接8051可以用到9600以上 123.195.6.78 07/08 22:58
→ CuckooBoy:不知道9600以上要有什麼條件 123.195.6.78 07/08 22:58
推 MasterChang:你用過8051嗎?有關鮑率的設定書裡面 140.132.23.74 07/09 01:40
→ MasterChang:都會提,主要還是你51的時脈上的匹配 140.132.23.74 07/09 01:41
→ MasterChang:如果51本身的時脈夠,115200是可以的 140.132.23.74 07/09 01:41
→ MasterChang:傳統51要跑這樣高的速度有他的難度和 140.132.23.74 07/09 01:42
→ MasterChang:ISR處理上的問題。 140.132.23.74 07/09 01:42
→ MasterChang:你先先講你到底懂那哪裡比較好回答, 140.132.23.74 07/09 02:06
→ MasterChang:不然你的問題有點不著邊際,會感覺是 140.132.23.74 07/09 02:06
→ MasterChang:來亂的...建議一下 140.132.23.74 07/09 02:07