新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于Lua腳本語言的嵌入式UART通信方案設計

        基于Lua腳本語言的嵌入式UART通信方案設計

        作者: 時間:2012-05-03 來源:網絡 收藏

        摘要:針對變電站中采用串口規約進行信息傳遞的各種外圍設備,在需要與其進行的IED智能裝置的開發中,設計了一種方案。通過該方案,可將具體串口報文規約的組建和解析交給進行處理,使設計者在具體裝置的軟件開發中,僅關注其與外圍設備以及間交互接口的設計,而不用關心具體的串口通信規約,從而提供了一種裝置串口通信的現場可配置化方案,提高了裝置應用的靈活性。
        關鍵詞:Lua;;串口通信;智能電子設備

        引言
        隨著變電站智能化程度的逐步提高,對溫度、濕度等現場狀態參量的采集需求也越來越多。就目前而言,在現場應用中,此類設備多采用RS232或RS485等串行通信方式和IED(Intelligent Electronic Device,智能電子設備)裝置進行交瓦。一般來說,不同的設備采用的通信數據幀格式并不相同。各式各樣的串口數據幀格式,對IED裝置的軟件定型造成一定的困難。傳統的做法一般是由裝置生產廠家指定和其配套的外圍設備,裝置的靈活性不夠理想。本文針對此類問題,提出了一種Lua腳本的解決方案,可有效地提高IED裝置對各種類型
        串口數據報文幀格式的適應性。該方案將具體串口報文規約的組建和解析交給Lua腳本進行處理,從而使設計者在裝置的軟件開發中,可僅關注于相關接口的設計,而不用關心具體的串口通信規約,從而方便軟件的定型,并提高了裝置自身在應用中的靈活性。

        1 Lua腳本介紹
        Lua是一種源碼開放的、免費的、輕量級的腳本語言,源碼完全采用ANSI(ISO)C。這一點使它非常適合融入目前以C語言為主的開發環境之中。兩者之間實現交互的關鍵在于一個虛擬的棧,通過該虛擬棧和Lua提供的可對該棧進行操作的相關接口函數,可以很方便地在它們之間實現各種類型數據的傳遞。
        與其他腳本語言(如Perl、Tcl、Python等)相比,Lua表現出了足夠的簡單性以及非常高的執行效率,結合其與平臺的高度無關以及充分的可擴展性,這使得它越來越多地得到大家的關注。因此,在本文的方案中優先選用Lua腳本來進行設計。

        2 系統方案概述
        本方案主要是圍繞著IED裝置和外圍串口設備之間的通信來進行設計的,系統框架如圖1所示。

        本文引用地址:http://www.104case.com/article/155041.htm

        a.JPG


        當IED裝置開始運行時,將創建一個用于UART通信的讀寫調度任務。在該任務中,首先通過Lua提供的接口函數來啟動其腳本引擎,并創建Lua虛擬機。然后即可將用戶編寫的C函數注冊到Lua虛擬機中去,并將存在于Flash文件系統巾獨立于裝置C程序的Lua腳本文件加載到虛擬機中,從而建立起Lua和C的交互環境。在系統應用中,將需要發送到外圍設備的具體數據內容都放在Lua腳本文件中。當裝置C程序需要發送數據時,通過通信讀寫調度程序及虛擬機的配合,將這部分數據取出,并調用串口驅動程序發送給外圍設備。當收到外圍設備發給IED裝置的報文時,再將相應數據傳給虛擬機中運行的腳小程序進行處理,并由Lua根據數據處理結果來調用已注冊的C函數進行相關業務處理。

        b.JPG

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武邑县| 阿瓦提县| 巍山| 绥宁县| 高雄县| 广州市| 宁德市| 沙湾县| 云龙县| 长子县| 华蓥市| 隆林| 河津市| 寻乌县| 应城市| 耒阳市| 乃东县| 凯里市| 延长县| 江陵县| 徐州市| 桐城市| 文水县| 兰坪| 宜都市| 琼中| 鹤山市| 兴隆县| 驻马店市| 韶山市| 吕梁市| 汝南县| 娱乐| 卢湾区| 陆丰市| 石河子市| 临安市| 宜州市| 白玉县| 共和县| 顺义区|