Tibbo Project System 快速入门

第一步:下载并一路next安装TIDE开发环境。

注意事项:使用USB转网口连接TPS的情况,必须在USB转网口插在电脑上时安装TIDE(以便让winpcap驱动记住)。

下载 TIDE 5

在TPS母板上拔插Tibbit模块开发硬件

TPP母电路板

Tibbo Project PCB(TPP)是一个可插入Tibbit模块的基板。类似洞洞板,上面有100mil间距的插孔,主控制器的管脚都被伸出来。

默认运行了 Tibbo OS (TiOS) 系统,内置TCP/ip协议栈,支持BASIC和C语言,事件机制编程。120MHz CorTex-M4内核单片机,Ethernet port(以太网)。

插入 Tibbit® 模块

Tibbits (as in "Tibbo Bits") 是封装在长方形塑料外壳里的功能电路板(PCBA)。Tibbits 可以分成 模块 和 连接器。

需要一个 ADC?插上一个 Tibbit 模块就可以了。24V 电源转换模块?找到它了!RS232/422/485 端口,也有。你还可以用单片机开发自己的功能模块。插针是标准的100mil管脚。可以单独在洞洞板上测试。

对外接口方面,也是可拔插模块的。DB9 接口?有封装在 Tibbit中的。接线终端?有的。红外接收/发射?有的。温度?适度?压力传感器?也是有的。

外壳 Tibbo Project Box (TPB)

控制器需要一个外壳。我们有一个标准版。以便减低成本。

这个配套外壳叫 Tibbo Project Box (TPB)。

TPB 的上边和下边的挡板是用 Tibbit的连接器尺寸大小做的,所以无需钻孔,就可以将 Tibbit接口伸出来。

内置TCP/IP的事件机制编程Tibbo操作系统 (TiOS)

我们做了一个轻量和顺序执行的操作系统 Tibbo OS(TiOS)。

TiOS 有且只有两个进程。第一个进程,负责实时的事务,包括 TCP 通讯,第二个进程,运行虚拟机,执行 TIDE 上编译的 Tibbo BASIC/C 应用程序。Tibbo IDE (TIDE) 开发环境,将 Tibbo BASIC/C 代码编译成 bytecode (我们叫它 p-code),然后虚拟机执行这些 bytecode。你的应用程序,可以自由的运行,但是绝对不会搞崩溃TCP协议栈。

调试模式下,TiOS 第二进程(虚拟机)仍然控制着你所写的程序。不需要独特的调试硬件——TIDE 使用以太网与TiOS第一进程通讯控制你的应用程序的执行。

指示灯信息

当虚拟机没有运行应用程序时,TiOS控制了红色和绿色指示灯用来提示一些信息。红色和绿色LED一起闪烁代表系统固件(TiOS)缺失;单独红色LED闪烁代表没有应用程序;单独绿色LED闪烁代表应用程序没有运行(debug模式没有运行的情况)。

按键

有两个按键,一个是复位按键,另外一个是MD功能按键。MD按键的作用:一,启动时按住此按键可以使用UART接口来升级TiOS固件。二,绕开固件设置的密码。按住MD按键,然后使用Device Explorer软件时,可以绕开密码。

下载程序到TPS

程序代码是在电脑上编译的,通过网络通讯将程序固件下载到TPS硬件上执行。传输的接口是以太网接口。PC与TPS的连接方式:

编程环境TIDE

开始菜单Tibbo文件夹运行Tibbo IDE。

点击File → New ProjectPlatform选TPP2W(G2)(或TPP3W(G2)、EM2000/EM2001,根据具体硬件来),Available project types选择2 - Empty C ProjcetProject name随便填。Location选择一个空目录(不能有中文目录)。Target Address点击select,选择扫描得到的TPP的MAC地址(可以留空,以后设置)。

可以看到TIDE在你选择的文件夹里创建了三个文件,两个是程序文件(.th和.tc,VI高亮语法命令::set syntax=c),一个是工程记录文件(.tpr,红色图标,双击就可以打开TIDE)。

菜单View点开Browser - Project,这个里边显示了TPP上的硬件编程接口。如图:

Objects

Platform——Objects查看当前硬件所有对象接口。对象表现了硬件接口。TIDE 里显示了每个类的 函数 和 属性,鼠标放上去就会出现提示。对象包括:

Sock (Sockets):最多32个UDP/TCP/HTTP。Ser (Serial Ports):最多4个串口。Net (Ethernet Port):设置IP。Pppoe。

Ssi (SPI and I2C)。Io (Input/Output)。ADC。RTC。Fd (Flash Disk)。Stor (EEPROM)。Kp (Keypad)。Pat (LED Patterns)。Beep (Buzzer Control)。Button (System Button)。


TIDE 点亮LED

几乎所有版本的硬件上都有一红一绿两个LED,和一个MD按键。

我们来写一个小程序,上电后红色LED亮,按下MD按键,就切换红绿两个LED分别亮。

我是用最精简系统版EM2001进行演示。

TIDE编程

整体程序思路

我需要在上电后执行的代码里让红色LED亮起来。

需要一个全局变量存储当前LED的状态,根据这个全局变量,在按钮按下时切换LED。

第一步,我们找到上电后执行的代码。与传统单片机从main函数开始顺序执行不同,TiOS全部代码是在事件里执行的,上电后代码可以在:on_sys_init()函数里写。所有的事件可以在Events里看到。如左(上)图

双击自动生成 void on_sys_init() {} 函数。

点亮LED的代码

我们需要知道用什么代码才能控制LED,所有硬件驱动在封装成了类,在Platform的Objects里边。我们找到pat。如左(上)图。鼠标放上去可以看到提示。根据提示和自动补全,我们可以得到:让红灯常亮是函数:pat.play("R~",PL_PAT_CANINT); 让绿灯常亮是:pat.play("G~",PL_PAT_CANINT);

PL_PAT_CANINT这个参数可以通过自动补全选择。鼠标放上去可以看到注释。有两个参数,一个参数是能中断,另一个是不能中断。因为闪烁有一个时间长度,加了“~”代表无限循环,如果选择不能中断,则无法改变。所以得选择能中断。

一个简单小程序

如图。

声明了一个全局变量led_g表征绿色LED亮不亮。

void on_button_pressed() 是MD按键按下的事件函数。

sys.debugprint("222"); 是用来调试的,可以直接在TIDE里通过网线调试程序。当TIDE模式选择在Debug时(上边下拉框)。

注意要根据具体硬件调整设置。(File ——》Project Settings ——》Platform)

回首页