Linux PC和51系列單片機串行通信的設(shè)計
初始化后,就可以進行數(shù)據(jù)的收發(fā)了,接受數(shù)據(jù)之前必須保證接收數(shù)據(jù)就緒,這可以通過0x2fd的D0來判斷,發(fā)送數(shù)據(jù)之前必須保證發(fā)送寄存器為空,這可以通過0x2fd的D5來判斷,代碼如下:
3 結(jié)語
實驗表明,此系統(tǒng)采用的2種方法都完全實現(xiàn)了LinuxPC機與單片機之間點對點的通信,方法簡單可靠,基本上在需要用到PC機與單片機串行通信的場合均可采用此種方法。隨著近年來Linux在國內(nèi)應(yīng)用范圍的日益壯大,在工業(yè)控制、數(shù)據(jù)采集等領(lǐng)域也必將越來越多的采用Linux,本文可以算作是一個有益的嘗試。當然在實際應(yīng)用中還需要考慮一些問題,比如進行出錯處理的問題,可以在一個要發(fā)送的字符串后再發(fā)送一個校驗和,當收到返回的校驗和與發(fā)送的校驗和不一致時再進行重發(fā),再比如所采用的RS232C傳輸距離很短,并且抗干擾能力很差,這時需要將總線轉(zhuǎn)換成差分傳輸?shù)腞S485/RS422。另外,稍加改進,就可實現(xiàn)PC機與多片51單片機的串行通信,這時由于共用一條總線,必須給每個單片機分配一個地址,然后由PC機對總線進行仲裁,只有獲得總線使用權(quán)的單片機才能與上位機進行通信,這里不再贅述。
總之,本文只是為Linux PC和單片機串行通信提供了一個典型的范例,要應(yīng)用到實際的項目中去,還需要根據(jù)實際的情況具體考慮,靈活應(yīng)用,最終才能形成一個可靠的基于Linux平臺的系統(tǒng)。
參考文獻
?。?] PhiCornes.Linux從入門到精通[M].童壽彬譯.北京:電子工業(yè)出版社,1998.
?。?]Peter Baumann H . Linux Serial - programming - HOWTO中文版[M].曾元佑譯.
[3]萬福君,潘松峰.單片微機原理系統(tǒng)設(shè)計與應(yīng)用[M].合肥:中國科學技術(shù)大學出版社,2001.
?。?][美]安格斯生.串行端口大全[M].精英科技譯.北京:中國電力出版社,2001.
評論