CN107566491A - 一种嵌入式Forth无线终端控制台方法及接口 - Google Patents
一种嵌入式Forth无线终端控制台方法及接口 Download PDFInfo
- Publication number
- CN107566491A CN107566491A CN201710789151.3A CN201710789151A CN107566491A CN 107566491 A CN107566491 A CN 107566491A CN 201710789151 A CN201710789151 A CN 201710789151A CN 107566491 A CN107566491 A CN 107566491A
- Authority
- CN
- China
- Prior art keywords
- task
- console
- forth
- terminal
- embedded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种嵌入式Forth无线终端控制台方法及接口,通过置换或复制无线终端控制台任务TCB表中的操作向量,实现无线终端控制台的交互操作功能,通过后台守护任务实现定时无线终端控制台握手连接操作;所述接口包括嵌入式Forth核心单元、供电单元、电子开关以及无线通信单元,结合本发明所述方法实现采用无线连接的第二终端控制台功能;采用本发明提供的嵌入式Forth无线终端控制台方法及接口使嵌入式Forth系统在非现场连接终端控制台的环境下,能够通过无线端控制台进行远程在线交互操作,在发挥Forth系统在线交互性特性的同时,实现按需供电,降低功耗。
Description
技术领域
本发明涉及一种嵌入式Forth无线终端控制台方法及接口,属嵌入式系统技术领域。
背景技术
Forth语言是一种具有简单性哲学思想的交互式过程控制语言和一种快速开发环境,适合于在中小规模的嵌入式系统应用,已被一些国外大公司作为有效缩短系统开发周期,降低生产成本,提高系统可靠性的秘密武器之一,并广泛应用于天文、军事、航空、航天、工业自动化等诸多领域。目前,Forth语言已越来越广泛地用于设计嵌入式软件和固件,例如FlashForth(PIC18Fxxxx);PicForth(PIC16F8xx);hForth(x86 StrongARM);QuartusForth (Palm Pilot)、F68KANS(68K);Forth for the TMS320C50、Mecrisp-Stellaris(ARM- Cortex)、PunyForth(ESP8266)、AmForth(Arduino AVR8)等等系统,涵盖了主流的嵌入式处理器。
在嵌入式系统应用中,时常碰到现场不间断运行和动态维护的困扰。许多在线运行的嵌入式多任务软件出现Bug或要更新升级时,往往都需要宕机后在现场进行更新与维护,甚至需要将设备撤离现场带入实验室才能解决。正因为Forth本身固有的在线交互特性,使得采用Forth开发的嵌入式多任务应用能够利用其自身所具有的交互终端控制台接口和终端任务软件模块,在应用系统不宕机,以及不影响除Bug模块和需要更新模块之外的其它软件模块正常运行的情况下,通过现场连接终端控制台,以交互方式完成软件模块的在线修改、替换或更新,重新让修复Bug后的模块或更新后的模块进入就绪状态,启动运行,使得对系统运行的影响减至最低。
然而,在一些特殊的应用场合,例如危险工业现场、空间探测现场以及不便于有线连接终端控制台的现场等环境,难以利用现场终端控制台来对嵌入式软件进行在线交互修改、替换或更新操作,在丧失Forth系统固有交互特性的同时,也制约了系统的有效生命周期。
发明内容
本发明的目的在于提供一种嵌入式Forth无线终端控制台方法及接口,旨在确保重构、扩展、移植等Forth固有特性的前提下,解决现有嵌入式Forth应用系统无线和远程交互终端控制台的连接问题。
本发明提供一种嵌入式Forth无线终端控制台方法,如图1所示,包括:
在Forth系统上电缺省终端任务Task1中,定义一个无线终端任务Task2;
初始化Task2,置换或复制TCB表中的KEY?、KEY、EMIT以及SOURCE、〉IN和 REFILL等向量;
定义Task2的任务体,休眠后台守护任务Task3,探测有否无线终端控制台连接,若没有连接,则唤醒task3,停止当前任务;若有,则初始化握手通信间隔,并退出任务体进入无线终端控制台交互模式,完成终端交互后,控制关断无线通信单元供电,并唤醒task3,停止当前任务;
激活链接Task2的任务体;
在系统缺省终端任务Task1中,定义一个后台守护任务task3;
初始化Task3;
定义Task3的任务体,没到通信联络时间Interval则退出,否则,控制接通无线通信模块供电,唤醒task2,进入多任务调度;
激活链接Task3的任务体;
初始化TCB循环链表,将Task1、Task2、Task3等任务接入TCB循环链表;
启动多任务调度。
本发明提供一种嵌入式Forth无线终端控制台接口,如图2所示,包括:嵌入式Forth核心单元、供电单元、电子开关以及无线通信单元,其中:
嵌入式Forth核心单元的一个IO端口连接一个电子开关,与无线通信单元的供电端口相连接;嵌入式Forth核心单元通过控制电子开关的开关状态,进一步控制无线通信单元的供电,使无线通信单元受控处于工作状态或断电状态;
嵌入式Forth核心单元的一个UART通信接口与无线通信单元的UART接口相连接,用于通过无线链路,与远端PC终端控制台或移动终端控制台相连接;
嵌入式Forth核心单元的另一个UART通信接口能够连接现场终端控制台。
本发明中,嵌入式Forth核心单元的Flash存储器中固化有Forth多任务系统固件,当系统上电后,即启动运行Forth系统,当连接现场终端控制台后,现场终端控制台进入Forth系统交互操作界面;
进一步,本发明中,当满足无线终端控制台通信条件时,嵌入式Forth核心单元控制电子开关打开,无线通信单元上电进入工作状态,使得远端PC终端控制台或移动终端控制台发起的无线连接能够通过无线链路连接嵌入式Forth核心单元,远端PC终端控制台或移动终端控制台进入Forth系统交互操作界面。
与现有技术相比,本发明的有益效果是:在嵌入式Forth系统原有的现场终端控制台接口之外,增加了采用无线连接的第二终端控制台功能,使嵌入式Forth系统在不便于现场连接终端控制台的应用环境下,能够通过无线端控制台来对嵌入式Forth系统软件进行远程在线交互修改、替换或更新操作,充分发挥Forth系统在线交互性特性。同时,通过电子开关控制无线通信单元的按需供电,能够有效降低系统功耗,延长系统生命周期。
附图说明
图1是本发明的嵌入式Forth无线终端控制台方法流程图。
图2是本发明的嵌入式Forth无线终端控制台接口结构示意图。
图3是本发明实施例的嵌入式Forth无线终端控制台接口结构示意图。
图4是本发明的嵌入式Forth无线终端控制台方法实施例中的无线终端任务执行流程图。
图5是本发明的嵌入式Forth无线终端控制台方法实施例中的后台守护任务执行流程图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。
如图3所示,一种嵌入式Forth无线终端控制台接口,包含:基于STM32F103RB处理器的嵌入式Forth核心单元、5V供电单元、MOS管电子开关、ESP8266 WIFI与串口透传无线通信单元,其中:
基于STM32F103RB处理器的嵌入式Forth核心单元,固化有Forth多任务系统固件,其一个IO端口连接到MOS管电子开关输入端,MOS管电子开关输出端与ESP8266 WIFI与串口透传无线通信单元的供电端口Vcc相连接;嵌入式Forth核心单元通过IO端口控制MOS 管的导通与关断,进一步控制ESP8266 WIFI与串口透传无线通信单元的供电,使ESP8266 WIFI与串口透传无线通信单元受控处于通电工作状态或断电状态;
基于STM32F103RB处理器的嵌入式Forth核心单元,其UART1串行通信接口与ESP8266WIFI与串口透传无线通信单元的UART串行接口相连接;
基于STM32F103RB处理器的嵌入式Forth核心单元,其另一个串行通信接口UART0能够直接连接至现场终端控制台;
系统上电后,基于STM32F103RB处理器的嵌入式Forth核心单元启动运行Forth系统,当连接现场终端控制台后,现场终端控制台上进入Forth系统交互操作界面;当基于STM32F103RB处理器的嵌入式Forth核心单元满足定时通信条件时,基于STM32F103RB 处理器的嵌入式Forth核心单元通过IO端口控制MOS管电子开关导通,ESP8266 WIFI与串口透传无线通信单元得电进入工作状态,使得远端PC终端控制台或移动终端控制台发起的Telnet连接或SSH连接能够通过Intranet/Internet连接至基于STM32F103RB处理器的嵌入式Forth核心单元,进入Forth系统交互操作界面。
在本实施例中,一种嵌入式Forth无线终端控制台方法的TCB,如下表所示:
任务控制块(TCB,Task Control Block)就是用户变量区里与多任务调度有关的一块特殊区域。TCB表中每一项都是通过用户变量进行定义,其中基本表项(前六项)是每个任务的必备项,而附加表项是专门针对终端任务而设置的。附加表项(I/O驱动)存放的是该终端任务的I/O驱动向量,与该任务具体连接的终端设备有关,附加表项(解释器操作)存放的是该终端任务文本解释器与状态有关的操作向量。
如图2、图4和图5所示,本实施例中,一种嵌入式Forth无线终端控制台方法,包括以下步骤:
系统上电启动时,系统中存在着一个缺省的系统终端任务Task1,以下步骤均在Task1中完成。
S101:定义全局变量Interval,用于保存定时通信握手间隔;
S102:TerminalTask定义一个无线终端控制台任务Task2,在Flash的Forth字典里创建一个特殊的任务定义,将分配给该任务的用户变量区首址保存到cfa代码场里,返回栈、数据栈栈底指针保存到pfa参数场里。
S103:TerminalTaskInit初始化Task2,即初始化用户变量区里的TCB表和堆栈区,设置缺省十进制,用UartAvailable、UartRead、UartWrite置换TCB表中的KEY?、KEY和 EMIT向量,复制Task1中的SOURCE、〉IN和REFILL向量到Task2的TCB表相应位置,在尚未激活链接任务体前,将该任务设置为PASS休眠状态;
S104:定义Task2的任务体,S201,TaskSleep休眠Task3;S202,UartConnected探测是否有无线终端控制台连接,若没有连接,则S203,TaskWake唤醒task3;S204,TaskStop即刻停止当前任务;若有,则S205,初始化通信握手间隔Interval;S206,退出任务体进入终端交互模式;完成终端交互时,S207,断开ESP8266 WIFI与串口透传无线通信单元供电; S203,TaskWake唤醒task3;S204,TaskStop即刻停止当前任务;
S105:Activate激活链接Task2的任务体,修改Task2的返回栈,使其指向任务体;
S106:BackgroundTask定义一个后台守护任务task3,在Flash的Forth字典里创建一个特殊的任务定义,将分配给该任务的用户变量区首址保存到cfa代码场里,返回栈、数据栈栈底指针保存到pfa参数场里。
S107:BackgroundTaskInit初始化Task3,即初始化用户变量区里的TCB表和堆栈区,设置缺省十进制,在尚未激活链接任务体前,将该任务设置为PASS休眠状态;
S108:定义Task3的任务体,S301,Interval递减;S302,检查Interval;不为零,S303,则进入Pause多任务调度;否则,S304,向ESP8266 WIFI与串口透传无线通信单元供电; S305,TaskWake唤醒task2;S302,进入Pause多任务调度;
S109:Activate激活链接Task3的任务体,修改Task3的返回栈,使其指向Task3任务体;
S110:AddFirstTask初始化TCB循环链表,将TASK1的TCB接入循环链表,将TCB的status设置为Wake,并将follower指向自身;
S111:AddNextTask链接Task2到TCB循环链表,将TCB的status设置为Wake;
S112:AddNextTask链接Task3到TCB循环链表,将TCB的status设置为Wake;
S113:启动多任务调度MULTI。
需要说明的是,以上多任务的设置是实现Forth无线终端控制台接入的首选环境,本实施例保留了系统自带的终端任务Task1,为现场终端控制台的有线接入进行系统在线维护提供了便利。Task2是新建立的终端任务,通过置换I/O驱动向量,用于支持各种通过无线透传模式连接终端控制台的接入,提供无线终端控制台功能。Task3是Task2的后台守护任务,定时启动Task3。除了以上多任务环境之外,实际应用时还可以依此建立多个满足应用需求的后台任务。
多任务启动后,在终端任务内嵌的Key等串行I/O定义中的Pause以及后台任务的显式的Pause处,开始任务切换,一开始,若没有串口终端连接,Task在Key处因等待键盘输入而进入Pause,沿着TCB循环链表找到Task2,但此时Task2处于Pass休眠状态不被调度执行,进而找到一直处于Wake状态的Task3等其它后台任务,并使其投入运行。只有当定时通信握手时间到,Task2才能运行。
最后需要说明的是,以上实施例仅用以说明而非限制本发明的技术方案,对于不脱离本发明的精神和范围的修改或局部替换,均应涵盖在本发明的权利要求保护范围中。
Claims (4)
1.一种嵌入式Forth无线终端控制台方法,其步骤包括:
在Forth系统上电缺省终端任务Task1中,定义一个无线终端控制台任务Task2;
初始化Task2,置换或复制TCB表中的KEY?、KEY、EMIT以及SOURCE、〉IN和REFILL等向量;
定义Task2的任务体,休眠后台守护任务Task3,探测有否无线终端控制台连接,若没有连接,则唤醒task3,停止当前任务;若有,则初始化通信握手间隔,并退出任务体进入无线终端控制台交互模式,完成终端交互后,控制关断无线通信单元供电,并唤醒task3,停止当前任务;
激活链接Task2的任务体;
在系统缺省终端任务Task1中,定义一个后台守护任务task3;
初始化Task3;
定义Task3的任务体,若没到通信联络时间则退出,否则,控制接通无线通信单元供电,唤醒task2,进入多任务调度;
激活链接Task3的任务体;
初始化TCB循环链表,将Task1、Task2、Task3等任务接入TCB循环链表;
启动多任务调度。
2.根据权利要求1所述的一种嵌入式Forth无线终端控制台方法,其特征在于,TCB附加表项是专门针对终端任务而设置的,附加表项(I/O驱动)存放的是该终端任务的I/O驱动向量,与该任务具体连接的终端设备有关,附加表项(解释器操作)存放的是该终端任务文本解释器与状态有关的操作向量。
3.根据权利要求1所述的一种嵌入式Forth无线终端控制台方法,其特征在于,用无线通信I/O驱动UartAvailable、UartRead、UartWrite置换TCB表中的KEY?、KEY和EMIT向量,并复制系统终端任务中的SOURCE、〉IN和REFILL向量到新建无线终端任务的TCB表相应位置。
4.根据权利要求1所述的一种嵌入式Forth无线终端控制台方法,其特征在于,无线终端控制台任务的流程是:休眠后台守护任务,探测有否无线终端控制台连接,若没有连接,则停止当前任务;若有,则初始化通信握手间隔,并退出任务体进入无线终端交互模式,完成终端交互后,控制关断无线通信单元供电,并唤醒后台守护任务,停止当前任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710789151.3A CN107566491B (zh) | 2017-09-05 | 2017-09-05 | 一种嵌入式Forth无线终端控制台方法及接口 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710789151.3A CN107566491B (zh) | 2017-09-05 | 2017-09-05 | 一种嵌入式Forth无线终端控制台方法及接口 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566491A true CN107566491A (zh) | 2018-01-09 |
CN107566491B CN107566491B (zh) | 2020-04-24 |
Family
ID=60978045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710789151.3A Active CN107566491B (zh) | 2017-09-05 | 2017-09-05 | 一种嵌入式Forth无线终端控制台方法及接口 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566491B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098258A (zh) * | 2022-06-23 | 2022-09-23 | 云南大学 | 基于多核堆栈处理器的Forth多任务调度方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070027730A1 (en) * | 2005-07-26 | 2007-02-01 | Mcardle James M | System and method for online collective decision making |
CN103456204A (zh) * | 2013-10-09 | 2013-12-18 | 云南大学 | 一种基于FORTH的x86教学实验系统核心板 |
CN105653333A (zh) * | 2015-12-31 | 2016-06-08 | 深圳市汇川控制技术有限公司 | 可编程逻辑控制器用户程序在线修改系统及方法 |
-
2017
- 2017-09-05 CN CN201710789151.3A patent/CN107566491B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070027730A1 (en) * | 2005-07-26 | 2007-02-01 | Mcardle James M | System and method for online collective decision making |
CN103456204A (zh) * | 2013-10-09 | 2013-12-18 | 云南大学 | 一种基于FORTH的x86教学实验系统核心板 |
CN105653333A (zh) * | 2015-12-31 | 2016-06-08 | 深圳市汇川控制技术有限公司 | 可编程逻辑控制器用户程序在线修改系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098258A (zh) * | 2022-06-23 | 2022-09-23 | 云南大学 | 基于多核堆栈处理器的Forth多任务调度方法及装置 |
CN115098258B (zh) * | 2022-06-23 | 2022-12-23 | 云南大学 | 基于多核堆栈处理器的Forth多任务调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107566491B (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Stenmark et al. | Knowledge-based instruction of manipulation tasks for industrial robotics | |
CN101814024B (zh) | 一种跨平台3d界面设计系统和方法 | |
Liu et al. | Open-hardware e-puck Linux extension board for experimental swarm robotics research | |
CN104423970B (zh) | 联网传感器及微控制器的动态编程及控制 | |
CN107703818A (zh) | 基于WiFi的无线编程创客教育智能控制器系统 | |
CN103823467A (zh) | 具备运动规划功能的工业机器人示教规划器的控制方法 | |
CN102520925A (zh) | Aadl2tasm模型转换方法 | |
CN105430094A (zh) | 农业物联网控制方法和系统 | |
CN104077204A (zh) | 可重构的8位rsic单片机仿真器 | |
CN105807628A (zh) | 用于复杂cps的机器人柔性控制器及其实现方法 | |
CN109739530B (zh) | 一种基于云端重编译的动环监控设备软件升级方法 | |
CN107566491A (zh) | 一种嵌入式Forth无线终端控制台方法及接口 | |
CN110597191A (zh) | 一种工业控制云服务系统 | |
CN104790128A (zh) | 一种缝纫设备升级装置 | |
Lal et al. | A hardware-in-the-loop simulator for distributed robotics | |
Wang et al. | Function block design for adaptive execution control of job shop machining operations | |
CN109150924A (zh) | 一种便携式配电网网架结构信息查询终端 | |
CN202548562U (zh) | 一种plc实验系统 | |
CN104678875A (zh) | 一种变频器配置方法及变频器配置系统 | |
CN208862873U (zh) | 一种便携式配电网网架结构信息查询终端 | |
Qu et al. | Distributed control application platform-a control platform for advanced manufacturing systems | |
Geissdoerfer et al. | Riotee: An Open-source Hardware and Software Platform for the Battery-free Internet of Things | |
CN113568333B (zh) | 数据处理方法、控制系统和设备 | |
Liang et al. | Arduino multimode integrated hardware development experiment platform design | |
CN109495381A (zh) | 网关与在网关上判断欲联网机器的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |