在线客服

咨询热线400-1515255

产品中心PRODUCT CENTER

TreeOS.AI自动编程系统作者: 发布于:2019-10-31 10:14:31

1、系统介绍

TreeOS.AI是光轮电子科技有限公司推出的全新自动编程系统,可识别电路原理图网络表文件(*.net),进而自动生成单片机(MCU)操作系统TreeOS源代码及其外围器件驱动代码,极大缩短嵌入式软件开发周期。生成的操作系统TreeOS基于无核构件化编程架构,具有完全自主知识产权,可适用于高、中、低速全系列MCU,专为物联网等低功耗、功能碎片化应用量身定制。关于TreeOS的详细介绍,请参阅文档《TreeOS操作系统原理和应用》。

2、使用方法
本系统基于Altium Designer(AD)软件,实现自动编程。使用时需首先在AD软件中建立原理图,导出指定格式的网络表文件并上传,之后即可生成所需TreeOS源代码,再基于此编写应用代码。具体操作步骤如下:

(1)建立MCU系统硬件原理图

AD硬件原理图编辑器的具体使用方法可参见其官方网站和教程,或光轮电子官网论坛。TreeOS.AI需要识别元器件标识符(Designator)和注释(Comment)属性,其设置界面如下图:



标识符一般按照器件的性质按U1、U2、和R1、R2等序号编排,注释一般设置为器件具体型号(具体参见文档第3和第5部分)。

在创建原理图时,推荐使用器件(模块)厂家提供的原理图器件库,如果需要自己创建,则必须保证器件原理图各引脚标识与数据手册一致,否则可导致网络表识别错误。特殊器件引脚标识说明,请参阅本文档第3部分,使用注意事项。


(2)导出网络表
原理图创建完毕后,需要在AD软件中导出其网络表,即器件引脚之间的连接逻辑关系。AD提供两种网络表导出方式。

A.单个文档网络表导出

如果一个原理图文件包括了MCU及其全部外围功能器件,则只需导出单个文档的网络表即可。点击Design->Netlist For Document->PCADnlt,就可导出当前打开文档的网络表文件。导出的网络表文件扩展名为.net,位于原理图文件夹中的Project Outputs for xxx(xxx为工程名)子文件夹。




B.项目网络表导出

当系统器件较多时,MCU与其外围功能器件可能分布在多张原理图中,原理图之间通过共同的网络名实现电气连接。此时,就需要导出整个工程的网络表。点击Design->Netlist For Project->PCADnlt,就可导出所需的工程网络表文件。




(3)上传网络表文件

上传导出的.net网络表文件,即可利用TreeOS.AI工具,自动生成TreeOS源代码。上传步骤如下:

访问光轮电子科技有限公司网址:www.treeos.com,找到自动写代码工具入口,点击下图中的“输出代码”蓝色按钮。




弹出下图所示的用户登录界面,老用户需要键入用户名、密码和验证码,点击登录,如果是新用户则需点击注册,进入用户注册界面。



登录成功后,此时点击TreeOS.AI对话框中的选择文件按钮,选择刚才生成的.net文件。



再次点击输出代码按钮,则进入MCU信息及代码下载界面,等待TreeOS代码生成,此过程可能会持续几分钟。


直到界面中出现代码下载链接,代码就自动生成了。


(4)下载生成代码
点击上图中的链接,下载代码压缩包,其中的内容包括:
      文件内容由三部分构成,如下图所示

A. 欢迎信息
包括TreeOS.AI版本号等。

B.代码生成信息
包括原理图网络文件名,上传时间,识别到的MCU型号,及其标识符,主时钟频率和工程项目适用的开发环境等。

C.TreeOS库函数使用说明
代码中包含的各TreeOS源文件及其功能函数使用说明。

文件夹目录结构为
MCUPrj\
    TreeOS\
        device\                设备库函数,包括大部分的TreeOS设备驱动文件,与设备物理连接相关
        function\              功能函数代码,与设备物理连接无关的代码
        main_scene\           主场景代码,main函数位于TreeOS_main.c中
            TreeOS_main.c
            TreeOS_main.h
        mcu\                  MCU基本功能和配置代码
            TreeOS_mcu.c
            TreeOS_mcu.h
        sub_scene\             分场景代码,主要包括应用代码,用户自行编写
        user\                  用户应用代码,主要包括应用代码,用户自行编写

(5)根据需要编写应用代码

3、使用注意事项

对于普通功能芯片(或模块)来说,在绘制原理图时,应保证器件的注释与芯片(或模块)的名称一致,各引脚标号与芯片(或模块)厂商发布的数据手册(说明书)一致,方可正常识别。但对于某些器件而言,需要标注特定内容,通过标识符与注释相结合的方法,识别器件及其特定运行参数,实现自动编程。具体说明见下表。


器件 标志符 注释 引脚编号
MCU(目前版本只能实现单个MCU的代码自动生成!) 不做要求 MCU具体型号+”_主时钟频率MHz”,例如:STM32F103RBT_72MHz。MCU具体型号必须精确到与器件引脚排列相关的尾缀,例如:STM32F103系列MCU,103之后的“C”、“8”、“T”与芯片的封装和引脚排列相关,不可省略,这三位字符之后的内容则可以省略,不影响识别。”_主时钟频率”是指MCU的运行主时钟频率。如果”_主时钟频率”项目空缺,则按照默认时钟生成代码。 以数据手册为准
电阻 以”R”或“r”开头 合法字符“0-9”,“R”,“.”,”K”,“k”,“M”,“m”等 设置为1、2
电容 以”C”或“c”开头 合法字符“0-9”,“F”,“.”,”u”,“n”,“p”等 设置为1、2
三极管 不做要求 见本文档第5部分 可设置为E、B、C分别对应三极管的发射机、基极和集电极;也可设置为1、2、3,但此时其与三极的对应关系应以各三极管厂家的数据手册为准,例如:9013和8050三极管手册注明的对应关系为1-发射极,2-基极,3-集电极
LED指示灯 不做要求 LED 不做要求
矩阵式键盘 不做要求 Keyboard4x4(四乘四键盘),Keyboard3x3(三乘三键盘) 设置为1-8
蜂鸣器 不做要求 BEEP_DC 设置为1、2
       


(1)MCU片上外设驱动生成、使用说明

        如果MCU的串口直接或经电平转换器件(MAX232,MAX485等)连接到某特定功能芯片或模块,则只需正确标识此芯片或模块即可,TreeOS.AI系统会自动识别需要启动的UART串口,无需特别处理;
如果MCU的串口直接或经电平转换器件(MAX232,MAX485等)连接到排针或端子等接插件引出,则需将对应的接插件注释设置为“MCU_UART”。
        如果MCU的ADC引脚直接连接到排针或端子等接插件引出,则需将对应的接插件的注释设置为“MCU_ADC”;
如果MCU的ADC引脚连接到模拟信号处理电路,则以下两种情况TreeOS.AI可将对应的MCU引脚识别为ADC功能:
A.MCU引脚与电容相连,如下图所示:



B.MCU引脚与运算放大器输出端相连

(2)MCU电源与“地”网络命名说明
有些器件的自动编程(例如:EEPROM存储器AT24C01)需要识别其设置引脚的电平状态,此时,就需要通过网络命名来识别MCU电源和“地”网络。
4、MCU库

序号 MCU型号5 系列 功能 默认主时钟频率(MHz) 开发环境
1 STM32F103T8U STM32 26IO/2U/4T/10xAD12b 72 Keil
2 STM32F103TBU STM32 26IO/2U/4T/10xAD12b 72 Keil
3 STM32F103C8T STM32 37IO/3U/4T/10xAD12b 72 Keil
4 STM32F103CBT STM32 37IO/3U/4T/10xAD12b 72 Keil
5 STM32F103CBU STM32 37IO/3U/4T/10xAD12b 72 Keil
6 STM32F103RBT STM32 51IO/3U/7T/16xAD12b 72 Keil
7 STM32F103R8T STM32 51IO/3U/7T/16xAD12b 72 Keil
8 STM32F103R8H STM32 51IO/3U/4T/16xAD12b 72 Keil
9 STM32F103RBH STM32 51IO/5U/8T/16xAD12b 72 Keil
10 STM32F103V8T STM32 80IO/3U/4T/16xAD12b 72 Keil
11 STM32F103V8H STM32 80IO/3U/4T/16xAD12b 72 Keil
12 STM32F103VBT STM32 80IO/3U/4T/16xAD12b 72 Keil
13 STM32F103VBH STM32 80IO/3U/4T/16xAD12b 72 Keil
14 STM32F103V8I STM32 80IO/3U/4T/16xAD12b 72 Keil
15 STM32F103VBI STM32 80IO/3U/4T/16xAD12b 72 Keil
16 STM32F103RCT STM32 51IO/5U/8T/16xAD12b 72 Keil
17 STM32F103RCY STM32 51IO/5U/8T/16xAD12b 72 Keil
18 STM32F103RDT STM32 51IO/5U/8T/16xAD12b 72 Keil
19 STM32F103RDY STM32 51IO/5U/8T/16xAD12b 72 Keil
20 STM32F103RET STM32 51IO/5U/8T/16xAD12b 72 Keil
21 STM32F103REY STM32 51IO/5U/8T/16xAD12b 72 Keil
22 STM32F103VCT STM32 80IO/5U/8T/16xAD12b 72 Keil
23 STM32F103VCH STM32 80IO/5U/8T/16xAD12b 72 Keil
24 STM32F103VDT STM32 80IO/5U/8T/16xAD12b 72 Keil
25 STM32F103VDH STM32 80IO/5U/8T/16xAD12b 72 Keil
26 STM32F103VET STM32 80IO/5U/8T/16xAD12b 72 Keil
27 STM32F103ZCT STM32 112IO/5U/4T/21xAD12b 72 Keil
28 STM32F103ZCH STM32 112IO/5U/4T/21xAD12b 72 Keil
29 STM32F103ZDT STM32 112IO/5U/4T/21xAD12b 72 Keil
30 STM32F103ZET STM32 112IO/5U/4T/21xAD12b 72 Keil
31 STM32F103ZEH STM32 112IO/5U/4T/21xAD12b 72 GCC_RISCV
32 GD32VF103R4 RISC-V 51IO/5U/8T/16xAD12b 108 GCC_RISCV
33 GD32VF103R6 RISC-V 51IO/5U/8T/16xAD12b 108 GCC_RISCV
34 GD32VF103R8 RISC-V 51IO/5U/8T/16xAD12b 108 GCC_RISCV
35 GD32VF103RB RISC-V 51IO/5U/8T/16xAD12b 108 GCC_RISCV
36 GD32VF103V8 RISC-V 80IO/5U/8T/16xAD12b 108 GCC_RISCV
37 GD32VF103VB RISC-V 80IO/5U/8T/16xAD12b 108 GCC_RISCV
38 STC12C5A60S2_35i_LQFP44 STC51 40IO/2U/5T/8xAD10b 11.0592 Keil
39 STC12C5A60S2_35i_LQFP48 STC51 40IO/2U/5T/8xAD10b 11.0592 Keil
40 STC12C5A60S2_35i_PDIP40 STC51 40IO/2U/5T/8xAD10b 11.0592 Keil
41 STC8A8K32S4A12_LQFP44 STC51 40IO/2U/5T/8xAD10b 11.0592 Keil


5、器件库
(1)存储器

序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 SST25VF016 同器件型号 2MB Flash存储器  
2 AT45DB081D 同器件型号 SPI接口1MB Flash存储器  
3 AT24C01 同器件型号 I2C接口128字节EEPROM存储器  
4 AT24C02 同器件型号 I2C接口256字节EEPROM存储器  
5 AT24C04 同器件型号 I2C接口512字节EEPROM存储器  
6 AT24C08 同器件型号 I2C接口1KB EEPROM存储器  
7 AT24C16 同器件型号 I2C接口2KB EEPROM存储器  
8 AT24C32 同器件型号 I2C接口4KB EEPROM存储器  
9 AT24C64 同器件型号 I2C接口8KB EEPROM存储器  


(2)传感器

序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 DS18B20 同器件型号 单总线温度传感器  
2 DH11 同器件型号 单总线温湿度传感器  
3 AM2305 同器件型号 单总线温湿度传感器  
4 MPU6050 同器件型号 陀螺仪芯片  
5 MPU6050模块 MPU6050_M1 陀螺仪模块 资料链接
6 MAX31865 同器件型号 RTD温度传感器信号调理芯片  
7 MAX31865模块 MAX31865_M1 RTD温度传感器信号调理模块 资料链接


(3)人机交互信息输出与显示器件

序号 器件型号或名称 原理图中应采用的注释 功能功能 备注
1 0.96英寸OLED屏 GMD09605 I2C接口  
2 SM420364 同器件型号 4位七段式扫描数码管(共阴)  
3 122×32液晶 LCD_12232_SED1520 并口,主控芯片为SED1520  
4 128×64液晶 LCD_12864_HD61202 并口,主控芯片为HD61202  
5 16字符×2行液晶 LCD_1602 并口,主控芯片为HD44780  
6 有源蜂鸣器 BEEP_DC 5V或3.3V直流供电  
7 继电器 Relay 继电器  
8 JZC-32F/012-ZS3(555) 同器件型号 继电器  
9 LED状态指示灯 LED 状态指示灯  
10 ISD4004-08MPY 同器件型号 ISD4004系列语音芯片  
11 ISD4004-10MPY 同器件型号 同上  
12 ISD4004-12MPY 同器件型号 同上  
13 ISD4004-16MPY 同器件型号 同上  
14 ISD4004-08MSY 同器件型号 同上  
15 ISD4004-10MSY 同器件型号 同上  
16 ISD4004-12MSY 同器件型号 同上  
17 ISD4004-16MSY 同器件型号 同上  
18 ISD4004-08ME 同器件型号 同上  
19 ISD4004-10ME 同器件型号 同上  
20 ISD4004-12ME 同器件型号 同上  
21 ISD4004-16ME 同器件型号 同上  
22 4位数码管显示模块 HC595_SEG 内部通过两片HC595实现锁存驱动数码管 资料链接
23 YYVP 语音芯片 定制化电子秤语音播放芯片 资料链接


(4)人机信息输入器件

序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 4×4矩阵键盘 Keyboard4x4 4乘4矩阵键盘  
2 3×3矩阵键盘 Keyboard3x3 3乘3矩阵键盘  


(5)逻辑接口或电平转换芯片

序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 74HC573 同器件型号 8bit锁存器  
2 74HC574 同器件型号 8bit锁存器 资料链接
3 74HC595 同器件型号 串转并口芯片  
4 ULN2003A 同器件型号 达林顿驱动管阵列  
5 MAX3232 同器件型号 TTL转RS232电平芯片  
6 SP3232 同器件型号 TTL转RS232电平芯片(与MAX3232引脚兼容) 资料链接
7 MAX485 同器件型号 TTL转RS485电平芯片  
8 ISL83072 同器件型号 TTL转RS485电平芯片(与MAX485引脚兼容)  


(6)数字通信芯片(模块)

序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 G510TTLDTU 同器件型号 GPRS通信模组  
2 ATK1218-BD S1216 GPS信号接收模块 资料链接
3 IRM3638T 同器件型号 红外线遥控器接收头,可实现NEC码解析  
4 HS0038 同器件型号 同上  
5 W5500 同器件型号 以太网通信芯片  
6 HC05 同器件型号 串口转蓝牙通信模块  
7 MFRC52201HN1 同器件型号 RFID读写芯片  
8 RFID-RC522 同器件型号 基于MFRC522的RFID读写模块  
9 PL2303 同器件型号 串口通信 资料链接
10 CH340 同器件型号 串口转USB口芯片  
11 MCP2515模块 MCP2515_M1 基于MCP2515芯片的CAN总线数据收发器模块  
12 PT2262模块 ZB-FSK-2A 无线遥控发射/接收模块  
13 HS2272C_L4模块 CZS-2A 无线遥控解码电路  
14 Zigbee通信模块 Link@Transfer_zigbee 物联网实训系统配套模块 资料链接
15 Lora通信模块 Link@Transfer_Lora 物联网实训系统配套模块  
16 蓝牙通信模块 Link@Transfer_Ble4.2 物联网实训系统配套模块  
17 蓝牙通信模块 JDY-08 物联网实训系统配套模块  
18 NBIoT通信模块 M5311 物联网实训系统配套模块  


(7)信息获取功能芯片(模块)

序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 PCF8563 同器件型号 实时时钟芯片  
2 DS3231模块 DS3231_M1 高精度温度补偿实时时钟模块 资料链接
3 DS1307模块 DS1307_M1 高精度温度补偿实时时钟模块 资料链接
4 DS1302模块 DS1302_M1 实时时钟模块 资料链接
5 AJ-SR04M模块 AJ_SR04M_T 超声波测距模块(脉冲输出模式) 资料链接
6 AJ-SR04M模块 AJ_SR04M_U 超声波测距模块(串口模式) 资料链接
7 HC-SR04 同器件型号 超声波测距模块 资料链接
8 TM7705 同器件型号 高精度ADC  
9 ADC0804 同器件型号 通用型ADC  
10 ADC0804模块 ADC0804_M1 通用型ADC模块  
11 PCF8591 同器件型号 I2C接口多路ADC  
13 CH376S 同器件型号 U盘读写芯片 资料链接
14 HX711_C 同器件型号 电子秤AD转换模块  


(8)模拟器件

序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 电阻 见TreeOS.AI使用说明书第3部分 连接信号  
2 电容 见TreeOS.AI使用说明书第3部分 连接电容的MCU引脚被识别为ADC功能  
3 8050 同器件型号 NPN型小功率三极管  
4 9013 同器件型号 NPN型小功率三极管  
5 9014 同器件型号 NPN型小功率三极管  
6 8550 同器件型号 PNP型小功率三极管  
7 9012 同器件型号 PNP型小功率三极管  
8 LM358 同器件型号 运算放大器,与之连接的MCU引脚识别为片上ADC功能  
9 IR333 同器件型号 被识别为38kHz载波红外遥控发码功能  
10 IR204 同器件型号 同上  

(9)MCU片上外设(具体使用方法见TreeOS.AI使用说明书第3部分)
序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 ADC模块 MCU_ADC MCU自带A/D转换  
2 PWM模块 MCU_PWM MCU自带PWM 资料链接
3 UART模块 MCU_UART MCU自带USART  

(10)其他器件
序号 器件型号或名称 原理图中应采用的注释 功能 备注
1 XY-LPWM模块 XY-LPWM_M1 PWM信号输出模块  


详情请点击:TreeOS.AI自动编程系统使用说明书TreeOS.AI软件库清单