当前课程知识点:现代电子系统设计 > 第七章 PSoC及其系统设计 > 7.3 PSoC软件开发 > 7.3 PSoC软件开发
下面讲第七章第三节
PSoC软件开发方法
在这一节我们主要讲
PSoC的一个集成开发环境
另外举几个外设设计的例子
PSoC的集成开发环境
叫PSoC Creator
这是它的一个界面
接下来我们看一下它的设计流程
它的设计流程包括六步
第一步就是建立新的工程文件
第二步叫编辑顶层设计文件
PSoC Creator呢
集成了一个图形化的设计环境
在这个图形化设计环境中
可以对它的外设进行设计
这是第二步
第三步设计完成以后
就给外设分配引脚
第四步是生成应用程序
这是PSoC Creator它可以自动生成的
应用程序
第五步就是编写C程序的代码
最后就是编程和调试
也就是编译以后
把这个目标文件下载到PSoC中
进行在线的调试
首先第一步是建立一个新的工程
那这是在这个软件的界面
点击File
然后选择New Project来实现的
之后就会弹出相应的对话框
在这个对话框中
需要选择PSoC芯片的型号
接下来第二步是进行顶层文件的设计
这个界面中在它的最左边
有一个工作区
列出了工程的一些文件目录
在右边是元件的目录
显示了PSoC可以提供的一些元件
包括通信的模块
然后模拟的模块
以及数字的模块等等
在它的中间是设计区域
设计的时候呢
我们从它的右边的元件目录中
选择需要的这个元件
然后把它拖到设计区域
例如
我们可以选择出来这个PWM
还有就是这个时钟Clock
还有一个就是引脚Pin
那么这些设备呢
如果要把它连接起来
组成一个系统的话
这时候我们可以用它的
左上角的这个连线的工具
来进行连线
连线完成以后呢
还需要对这些设备呢
进行属性的设置
这时候我们双击设备
就可以打开属性设置的对话框
在这个图中
我们双击PWM
在它的下面就打开了属性设置的对话框
这时候可以设置它的属性
例如设置这个PWM的
它的这个脉宽
还有它的周期等等
另外在这个界面的左下角
有一个Datasheet的按钮
然后点击以后
就可以打开它的这个手册
手册里头会描述它的功能
它的属性
另外还会有它的驱动函数
有可能还会有示例代码等等
所以我们在设计的时候呢
就需要去查看这个手册
这个手册是非常重要的
对于设计来讲
接下来设计完成以后呢
就可以分配引脚了
我们点击这个工作区
左边工作区的这个Pins
那么这时候呢
在这个中间呢
就会显示PSoC对应的这个引脚
这时候在这个右边我们就可以选择对应的
这个引脚的端口
例如我们为Pin1选择了这个
P63GPIO端口
那么引脚分配完了以后呢
那接下来可以让它自动产生一个应用
那这时候呢
我们是点击Build
然后选择Generate Application
来实现的
那么点击以后呢
就出现这个界面
这时候在这个界面里头
我们点击左边的main.c这个函数
然后在右边的这个框中
就可以对这个程序进行编辑和修改了
编辑完成以后呢
就可以点击Debug
然后选择Program
然后进行调试和仿真
另外呢
可以下到这个板子上面的PSoC上面
进行编程
这就是它的这个整个的设计的流程
那么对于PSoC的设计呢
它也是基本上主要是对它的
这个设备进行设计
那么外设的设计方法呢
它的步骤是类似的
但是它的这个细节是不一样的
在设计设备的时候呢
通常你都先需要了解这个设备
然后看看它的功能
然后了解它的这个属性
然后再了解它的驱动函数
还有示例代码等等
下面呢
举几个列子
第一个列子呢
就是CapSense的这个设计
那么什么是CapSense呢
我们刚才提到了
CapSense呢
就是一个电容触摸式感应的一个技术
这个技术呢
可以感知电容的变化
所以呢
用它可以设计一些电容触摸式的按钮
或者是滑条
比方说像这个
这个实际上呢
它是一个电路板
在这个电路板上面呢
做了这个触摸的按钮
这时候这个中间圆形的蓝色的按钮呢
实际上它的材质呢
是导体
比如说这个铜皮
然后在它的周围一圈黑色的呢
代表的是绝缘的材料
然后在黑色的一圈的外围呢
就是蓝色的这个网状的这个材料
蓝色的网状的材料呢
也是导体
比如说铜皮
那这时候按键
和周围的这个网状的材料之间
就组成了一个电容
那这个电容值呢
就是一个固定的电容值
如果我们用手指去触摸这个中间的
按钮的时候
因为人体手指是导体
所以这时候手指跟周围的网状的
这个材料之间
也形成了一个电容
那这个电容和它原来这个按键的电容呢
叠加在一起
那这时候就会改变原来的这个
按键的总体的电容值
那CapSense技术呢
就可以来测量这个电容值的改变
从而能够感知是否有手指按上去
这是CapSense它的技术的这个原理
那通常在实际应用的时候呢
在CapSense按键上面呢
会要覆盖一个表层
然后在表层上面呢
可以用手去触摸它
这是CapSense它的这个技术
那具体来讲呢
我们再来看一下
Cypress呢
它有几种电容触摸感应的技术
其中有一种就叫CSD
它是电容sigma-delta感应方法
它主要是利用了一个开关电容的技术
以及一个sigma-delta的一个转换器
这个sigma-delta转换器呢
实际上就是一个sigma-delta的这个ADC
那下面我们看一下它的这个原理图
在方框的这个左边呢
有两个电容
这个电容CP呢
就代表触摸按键
它本身等效的这个电容
然后电容CF呢
代表手指触摸上去以后
等效的电容
这两个电容呢
是并连连接的
另外这两个电容呢
通过电阻Rs连接到了两个开关
SW1和SW2
而这两个开关呢
是通过这个上面的一个时钟来控制的
这个时钟控制这两个开关
交替的闭合和打开
例如这个时候是SW1打开
而SW2闭合
当SW2闭合的时候
就把这两个电容连接到电路里头
进入右边的sigma-delta的这个ADC里头
这时候上面有两个电流源
连接到sigma-delta的这个输入端
同时对这两个电容进行充电
使得ADC输入端的电位发生变化
那这时候这个ADC呢
能够感知手触摸上去以后
电容的变化所产生的电压的变化
于是就把这个变化值转换数值量
然后就可以判断出来
这个手指是不是按上去了
这就是它的电路的工作原理
在用软件设计的时候
我们在PSoC Creator里头呢
在选择了CapSense这个功能以后呢
我们要对它的属性进行设置
打开这个CapSense模块
在这个对话框里头
可以进行一些属性的设置
如果要了解CapSense它的信息
也可以点击这个左下角的这个Datasheet
去进行了解
当然在实际设计的时候呢
我们可以利用PSoC Creator
提供的一些样例
也就是一些示例的代码来进行设计
那我们可以学习它的示例代码中
这个PSoC Creator
是怎么设置它的属性的
是怎么去编程的
学习了以后呢
然后我们再去进行设计
这样会提高效率
接下来我们讲第二种设备
就是蓝牙模块
这是PSoC6所具有的一个设备
我们在第五章中
学习了这个蓝牙通信的一些方法
那么蓝牙通信的时候
大家还记得
就是它要组成一个微网
这时候微网里头有一个主设备
然后有最多七个从设备
那么主设备呢
负责发起建立连接
然后发起这个数据交换
下面我们对建立连接过程呢
进行一个简单的介绍
首先假设有两个设备
一个是主设备
比如说手机
另外一个是从设备
比如说是PSoC设备
那这时候在通信的时候呢
首先第一步就是要发现设备
这时候主设备要查询周边蓝牙的设备
它会发送一个广播的这个信息
而从设备呢
就在不停的扫描有没有主设备查询
如果扫描到这个查询的广播信息以后
它就会做出响应
这时候它会发送这个设备的访问码
和时钟信息
然后主设备收到这些信息以后呢
就进行第二步建立连接
主设备呢
这时候会广播一个信息
包括这个访问代码
要求建立连接
然后从设备呢
就在不断的扫描是否有建立连接的
广播信息
这时候它会监听这个广播信息里头
有没有自己的这个访问码
一旦监听到了以后
它就知道这个主设备是请求
跟它建立连接的
于是就做一个响应
这时候主设备收到这个响应以后
就会发送时钟和配置信息给从设备
那么这时候从设备跟主设备之间
就可以建立连接了
建立连接以后呢
就可以开始发送数据
这时候可以由主设备来发起
交换数据
这是这个蓝牙设备
它建立连接的这个过程
那么对于蓝牙设备呢
也一样
在用PSoC Creator进行设计的时候
也要对它的属性进行设置
设置的时候呢
同样一方面可以看它的这个数据手册
datasheet
另一方面呢
也可以参考PSoC Creator
提供的一些示例代码进行学习
然后再进行编程
这是第二个设备
第三个设备就是IPC
也是PSoC6它所具有的一个设备
那么IPC是什么呢
它是用于PSoC6里头
两个微处理器之间通信的这么一个模块
然后它通信的时候
是采用信号量和互斥锁来实现的
在这个图中
我们看到PSoC6的微处理器子系统呢
有很多这个设备
那这些设备呢
一方面会通过它的这个总线
AHB总线
进行连接
同时两个微处理器之间呢
就会通过这个IPC来进行通信
下面我们举一个例子
这个例子呢
就是两个微处理器呢
通过互斥锁来访问控制一个共享的变量
那下面我们来看一下它的这个工作流程
首先有CM0和CM4这两个微处理器
那么它的这个流程是这样子
首先是CM0进行系统的初始化
然后接下来呢
CM0在初始化这个IPC之后
再使能CM4
这时候CM4就可以进行自己的初始化了
接下来CM0呢
再设置IPC的通道地址
同时CM4也设置一个相同的
这个IPC的地址
设置完成以后
它们就可以进行通信了
这时候CM0要等待这个IPC通道空闲
一旦空闲以后
它就可以请求通道锁存
然后发送共享的内存地址
也就说它请求锁存这个通道
然后把这个要共享的这个变量
发送到这个内存地址里头去
这时候CM4呢
接下来它就会等待通道被锁存的信息
一旦知道这个通道被锁存了以后
它就可以读取这个共享内存地址里头的
这个变量了
然后读取完成以后呢
它再释放这个通道
这时候CM0呢
就是在监听等待这个通道的释放
一旦等待释放完成以后呢
这时候它们就可以再进行下一轮的
这个通信了
这就是PSoC6利用IPC进行通信的
一个流程
那么IPC进行通信的这个例子呢
大家可以学习以后
然后再可以自己进行编程
去实现一个新的IPC的一个通信的模式
-课程简介
-1.1 电子系统简介
-1.2 现代电子系统举例
-1.3 现代电子系统的组成
-1.4 现代电子系统设计方法
-第一章 作业
-2.1 传感器定义
-2.2 传感器的分类和性能指标
-2.3 常用传感器介绍
-2.4 常用执行器介绍
-第二章 作业
-3.1 模拟信号处理简介
-3.2 信号放大和隔离电路
-3.3 滤波电路
--3.3 滤波电路
-3.4 运算电路(一)
-3.5 运算电路(二)
-3.6 电压比较器
-3.7 功率放大电路
-3.8 模-数转换器
-3.9 数-模转换器
-第三章 作业
-4.1 直流电源简介
-4.2 线性稳压电源
-4.3 开关稳压电源
-第四章 作业
-5.1 微处理器简介
-5.2 微处理器和片上系统的发展历程
-5.3 微处理器分类
-5.4 微处理器和片上系统举例
-5.5 微处理器和片上系统硬件结构
-5.6 外围接口和设备
-5.7 嵌入式软件开发方法
-5.8 嵌入式操作系统
-5.9 外围设备应用程序开发简介
-第五章 作业
-6.1 TM4C123 简介
-6.2 TM4C123 实验板
-6.3 TM4C123 软件开发
-6.4 TM4C123 实验举例
-第六章 作业
-7.1 PSoC简介
-7.2 PSoC实验板
-7.3 PSoC软件开发
-7.4 PSoC实验举例
-第七章 作业
-8.1 FPGA简介
-8.2 FPGA的发展趋势
-8.3 FPGA的特点
-8.4 FPGA的结构
-8.5 FPGA结构举例
-8.6 FPGA设计工具和方法
-8.7 QuartusⅡ集成开发环境
-8.8 DE2-115实验平台简介
-8.9 Verilog硬件设计语言
-- 8.9.8 设计仿真
-8.10 数字电路设计与仿真举例
-第八章 作业
-9.1 SOPC简介
-9.2 Nios II 微处理器简介
-9.3 Avalone总线简介
-9.4 SOPC设计方法简介
-9.5 SOPC设计举例
-- 9.5.1 设计内容
-9.6 Nios II 软件设计
-第九章 作业
-10.1 实验内容与要求
-10.2 实验设备与器材
-10.3 注意事项与调试方法
-10.4 实验结果展示
-第十章 作业
-期末考试
--期末考试