新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用純軟件實現單片機遠程通信的設計

        利用純軟件實現單片機遠程通信的設計

        作者: 時間:2013-02-05 來源:網絡 收藏
          GMS972051是韓國LG公司生產的MW內部帶2K E2PROM的與MCS-51兼容的。GMS97C2051省去了MCS-51的P0和P3口,但是多了一個內部硬件比較器。由于的通信信號為TTL電平,如果不采取其它的措施,其在通信速率為9600bps時通信距離不超過5米。一般為了延長的通信距離,采用RS-232/RS-485轉換器、RS-232/RS-422轉換器或光隔遠程收發器。

          要用方法實現GMS97C2051單片機之間的,首先必須將單片機的TTL電平的軟件方法轉換為差分電平,其次要用普通I/O口線來構成軟件串行口,并且在軟件上進行正確的配合。

          TTL電平轉換成差分電平的方法

          TTL是IP協議包中的一個值,它告訴網絡,數據包在網絡中的時間是否太長而應被丟棄。有很多原因使包在一定時間內不能被傳遞到目的地。解決方法就是在一段時間后丟棄這個包,然后給發送者一個報文,由發送者決定是否要重發。TTL的初值通常是系統缺省值,是包頭中的8位的域。TTL的最初設想是確定一個時間范圍,超過此時間就把包丟棄。由于每個路由器都至少要把TTL域減一,TTL通常表示包在被丟棄前最多能經過的路由器個數。當記數到0時,路由器決定丟棄該包,并發送一個ICMP報文給最初的發送者。

          GMS97C2051單片機的信號均為TTL電平。TTL電平信號傳輸距離非常有限,一般在9600bps傳輸率時傳輸距離不超過5米。而差分電平信號則是取決于兩種信號線之間的電平差值,如果某條信號線的電平高于另一條,則信號為1,否則為0.由于差分電平信號可以避免長距離傳輸導線上的電荷積累,并且具有更寬的電平范圍,所以傳輸距離遠得多。RS485差分電平信號在9600bps傳輸率時傳輸距離可達1200米。為了用實現差分電平傳輸就不能使用GMS97C2051本身的硬件串行口,而是用普通I/O線來實現串行通信。差分電平要用兩條I/O口線來實現,比如P1.2和P1.3兩條線(見圖1)。當傳輸信號為1時,P1.2為+5V,而P1.3為0V.當傳輸信號為0時,P1.2為0V為0V,而P1.3為+5V.注意P1.2和P1.3不得同時置+5V或同時置0V.

          為了用純軟件實現差分電平傳輸就不能使用GMS97C2051本身的硬件串行口,而是用普通I/O線來實現串行通信。差分電平要用兩條I/O口線來實現,比如P1.2和P1.3兩條線(見圖1)。當傳輸信號為1時,P1.2為+5V,而P1.3為0V.當傳輸信號為0時,P1.2為0V為0V,而P1.3為+5V.注意P1.2和P1.3不得同時置+5V或同時置0V.

          GMS97C2051單片機的P1.0和P1.1可以分別作為片內精密模擬電壓比較器的正輸入端(AIN0)和負輸入端(AINI),所以正好可以用于接收差分電平信號。內部電平比較器的輸出已經在芯片內部連到P3.6口,所以可以通過讀取P3.6口的值來得到差分電平信號。

          軟件串行口的實現方法

          串口叫做串行接口,現在的PC 機一般有兩個串行口COM 1 和COM 2 .串行口不同于并行口之處在于它的數據和控制信息是一位接一位地傳送出去的。雖然這樣速度會慢一些,但傳送距離較并行口更長,因此若要進行較長距離的通信時,應使用串行口。通常COM 1 使用的是9 針D 形連接器,也稱之為RS-232接口,而COM 2 有的使用的是老式的DB25 針連接器,也稱之為RS-422接口,不過目前已經很少使用。

          串行端口(Serial port),或稱串列埠、序列埠、串口,主要用于串列式逐位元數據傳輸。常見的為一般電腦應用的RS-232(使用 25 針或 9 針連接器),工業電腦應用的半雙工RS-485與全雙工RS-422.串口叫做串行接口,也稱串行通信接口,按電氣標準及協議來分包括RS-232-C、RS-422、RS485、USB等。 RS-232-C、RS-422與RS-485標準只對接口的電氣特性做出規定,不涉及接外掛程式、電纜或協議。USB是近幾年發展起來的新型接口標準,主要應用于高速數據傳輸領域。

          采用差分電平通信的軟件串行口的硬件接線圖如圖2.A、B兩機均為GMS97C2051單片機。P1.2和P1.3用于發送,P1.0和P1.1口用于接收,P1.0同時接本機中INI0.軟件串行口一般全用標準的10位異步通信格式:1位起始位(信號0),8位數據位,1位停止位(信號1)。接收時均是低位數據在前,高位數據在后。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 前郭尔| 丹巴县| 汨罗市| 阳信县| 武平县| 西吉县| 赣州市| 吴忠市| 阿拉善右旗| 延川县| 乌拉特前旗| 天长市| 绵阳市| 平南县| 通江县| 英山县| 甘肃省| 望谟县| 丹棱县| 长沙市| 乾安县| 体育| 龙门县| 石首市| 巴彦淖尔市| 浦城县| 城市| 兴宁市| 灵武市| 淅川县| 军事| 白城市| 德保县| 浑源县| 芦溪县| 福泉市| 黔南| 嫩江县| 临安市| 广东省| 资源县|