串口和並口-硬件機制和軟件策略

記得世紀之初的第四年,我剛上大學,記得老師講串口比並口簡單,可是並口一次能夠發送8位的數據,當時我就以爲並口比串口好,由於它速度更快,但是後來,隨着時間的流逝,我幾乎發現並口失蹤了,沒有人再使用它了,難道一次能夠傳輸8位的線纜沒有一次僅能夠傳輸1位的線纜好嗎?
     後來參加工做,我逐漸明白了這個問題,並口雖然單次傳輸速度很快,然而一旦1位出錯,8位的數據就所有從新傳輸,另外一方面,也不利於單位控制,好比有的時候不須要傳輸8位的數據,只須要傳輸1位的控制位便可,另外最重要的,8位並行傳輸,8根線纜之間的串擾很強烈,出錯率很高,除了傳輸ascii或者unicode字符以外,在控制方面,按位控制比按字節控制更加節能和高效,所以並口的利用率遠遠不如串口,硬件設計也過於複雜,並且硬件規範一旦成型就不易更改,而軟件更改卻很容易,所以一些控制信號最好經過軟件協議來協商而不要經過硬件來固化,好比通訊雙方商量好,若是發送一個1110序列,那麼就是立刻要寫數據了,數據內容中的1110如何轉義也須要協商好,若是發送0111序列,那麼就是請求讀取數據,後面跟一個地址,這樣要比專門搞一些地址針腳或者控制針腳要好不少。也就是說,硬件提供最基本的機制,好比收和發以及接地,而其他的控制協議和傳輸協議所有由軟件來完成,這是最合理的了,這也是當今計算機工業發展的主流,好比磁盤一例,以往咱們都是用ATA磁盤,也就是咱們熟悉的IDE磁盤,它是並行口的,數據線有不少的針腳,兩大排,插拔的時候要很當心,弄很差就插折了,而現在呢,再次打開機箱,咱們發現了一根細不少的紅色(也有別的顏色)線纜,那就是sata線纜,鏈接的就是sata磁盤,這根線纜有着很少的幾個針腳,和usb差很少,它基於串行口,sata中s就是serial的意思。
     所以,不要在硬件上花費太多的時間、精力和金錢,最好的辦法是用軟件解決,評價一個硬件好很差並非它的功能強不強,而是它必須是機制化的,不要有太多的策略。太多的功能必然意味着成本的增長,在成本和性質之間必須有一個權衡,就想同軸電纜敗給雙絞線同樣,單論傳輸特性,同軸電纜確定是無以倫比的,然而它造價高的超過了它帶來的好處,所以它敗了,雙絞線的劣勢徹底能夠用軟件來彌補一二。軟件的劣勢能夠經過重構來彌補,重構或者重寫徹底是取決於人的腦力的,而硬件的重構卻須要巨大的人力財力投入,能用軟件解決的問題不要用硬件解決。ide

相關文章
相關標籤/搜索