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