Compare commits

..

22 Commits

Author SHA1 Message Date
ZhenyeLi
9259c29db3 Update parameters of Cotton sorting machine 2024-12-27 18:21:28 +08:00
Zhi Yipeng
ea2c9cb132
Update README.md 2024-07-24 09:56:38 +08:00
xyxy111
67a546ba86
Update README.md 2024-07-24 09:48:14 +08:00
Zhi Yipeng
fcd008df34
Update README.md 2024-07-24 09:47:37 +08:00
f70f5eb503 feat: Merge Library Files and add new hardware project
readme.md needs to be updated
hardware sch files needs to be corrected
2024-05-10 16:00:17 +08:00
miaow
7f7afb93b7 feat: migrate from the wood project to form the framework of this cotton project
readme.md needs to be improved
2024-05-07 21:06:45 +08:00
lyz
4f6a3953c8 feat(app): 新增了模拟上位机的软件程序
1. 新增了模拟上位机软件,方便调试下位机
2. 编写了模拟上位机的使用说明文档
3. 修改了README的相关部分
2023-06-20 18:54:42 +08:00
Miaow
6449ebeeac refactor(app, drv): 移植下位机的应用程序到新的通信协议
1. 应用程序实现了心跳包
2. 应用程序实现了4个相机的单独设置
3. 应用程序去除了有关喷阀、接收处理mask和硬件fifo相关的代码
4. 删除了fifo相关驱动程序
5. 修正了encoder驱动程序中的清除缓存逻辑

Co-authored-by: lyz <1942503466@qq.com>
2023-05-27 23:01:10 +08:00
Miaow
fe7b3308bc refactor(pro): 升级了上位机和下位机的通信协议
1. 长度字段增加到4个字节表示
2. 去除了涉及喷阀等的无关描述和未使用的命令
3. 修改了设置相机触发对应的脉冲数的命令,使得能够适应更多的相机数量
4. 添加了下位机工作流程与通信有关的描述

BREAKING CHANGE: 需要修改上位机以及下位机的应用程序,否则不能通信
2023-05-05 17:01:58 +08:00
Miaow
faae382955 refactor(pl,drv,doc,scr): 补充pl端源码
1. 添加pl端vivado工程生成脚本和源码
2. pl端设计删除本项目无关的fifo和valve interfaces模块
3. 系统部署脚本中删除fifo相关内容
4. 删除linux下的fifo驱动
5. 修改与上述内容有关的文档

BREAKING CHANGE: fifo有关功能和寄存器不再有效

Co-authored-by: lyz <1942503466@qq.com>
2023-04-29 02:22:41 +08:00
Miaow
5a5c613097 fix(doc,drv,pl): 修正了ENCODER_CR的CLR位逻辑错误
1. 修正了pl_reference_mannual.md中的错误描述
2. 修正了encoder驱动中open和release函数对CLR位的设置
3. 修正了pl端encoder模块的ENCODER_CR寄存器复位值,使其默认为清除缓存状态

Co-authored-by: lyz <1942503466@qq.com>
2023-04-27 17:25:19 +08:00
Miaow
4ecbc6a0ba feat(pl,drv): 添加了外部信号屏蔽相机触发的机制
1. pl端的encoder模块实现了可选的外部复位信号
2. pl端修改encoder模块的ENCODER_CR寄存器复位值,为仅限内部复位以及内部默认处于复位状态
3. 驱动层实现外部复位的开启和关闭功能,驱动open时退出默认的复位清零状态
   由于驱动程序已在open时退出复位状态,应用程序可不做更改,驱动程序close后不会自动切换回复位状态
4. 更新了驱动测试应用程序
2023-04-26 21:21:40 +08:00
lyz
c21a5d8371 test(drv): 增加对encoder驱动的测试应用程序
encoder驱动的测试应用程序为source/linux_driver/encoder_drv_test
2023-04-26 14:01:35 +08:00
Miaow
845af905f9 feat(pl,drv): 实现了4路相机的独立触发输出
1. 修改了encoder模块的PL端设计和驱动,修改为为4路相机的独立触发输出
2. 修改了启动方式,将比特流文件从BOOT.BIN中分离,实现PL端逻辑的动态加载

BREAKING CHANGE: encoder模块的PL逻辑和linux驱动有变化,驱动的write接收参数从
	struct {
			unsigned int valve_divide_value;
			unsigned int camera_divide_value;
	} encoder_dev_divide_value_structure;
	变为
	struct {
			unsigned int valve_divide_value;
			unsigned int camera_a_divide_value;
			unsigned int camera_b_divide_value;
			unsigned int camera_c_divide_value;
			unsigned int camera_d_divide_value;
	} encoder_dev_divide_value_structure;
2023-04-26 10:56:29 +08:00
Miaow
71f8e672d5 机器已经部署到淮安
8月底出差告一段落,运行一切正常
1. 添加了喷阀数据队列走空计数和自动补偿功能
2. 喷阀数据队列发生不可恢复的异常时向上位机报告错误
3. 取消双FIFO
2022-09-01 21:40:16 +08:00
Miaow
1dd8210404 更新了通信协议
通信协议中添加了支持第二个fifo的命令
2022-08-01 10:24:53 +08:00
MIAOW
74e31ef86a
添加ENCODER中CLR位的补充说明
1. 添加ENCODER中CLR位的补充说明
2. 修正了一个错字
2022-07-19 17:29:51 +08:00
MIAOW
d2c44d04f2
修正配置和命令
1. rootfs中去掉packagegroup-core-ssh-dropbear
2. rootfs中添加which和ncurses
3. 部分echo改成echo -e
4. 添加了set +H命令
2022-07-19 02:15:13 +08:00
Miaow
617ed894f7 添加了版本描述
tag中版本号遵循定义如下:
b分支编号-d文档版本-hPCB设计版本-lFPGA设计版本-p协议版本-s脚本版本-aAPP代码版本-i驱动版本-c系统编译配置版本-e设备树版本

分支编号和分支命名中编号一致。各部分版本应在相应目录下创建文件注明,比如`2.1`版本的PCB设计:PCB工程目录中建立`version`文本文件,内容为文本`2.1`。对于涉及整体设计的大改动版本号加`1`,其余改动版本号加`0.1`。每个分支的版本各自独立,新分支的版本从`1.0`起计算
2022-07-03 20:27:20 +08:00
Miaow
c98584d029 寒假前烟梗分选机上已经开始用的
测试能否打中暂时没啥问题,但溜的急,没充分测试
2022-07-03 19:47:53 +08:00
MIAOW
ea0bb89a2d change pcb to v2.0 2022-06-01 07:40:09 +08:00
MIAOW
71e69c0dac original version 2022-05-15 22:28:29 +08:00
241 changed files with 17362 additions and 2833 deletions

11
.gitignore vendored
View File

@ -64,4 +64,13 @@
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
.apdisk
__pycache__/
*.py[cod]
venv/
.idea/
old/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

View File

@ -1,43 +1,48 @@
# 下位机
糖果分选机的下位机根据传送带脉冲等触发相机,接收上位机给的数据,按其要求控制阀板,用在各种分选机上。本次下位机采用的硬件是[广州致远电子股份有限公司 ](https://www.zlg.cn/)(周立功)的[EPC-9600I-L工控主板](https://www.zlg.cn/ipc/ipc/product/id/77.html)简称EPC9600自带各种接口但是除了网口和DI/DO接口其他接口统统用不到。阀板接口、触发相机的接口、编码器接口都是连接自己做的IO扩展板将IO扩展板插在底板DI/DO接口上叠起来因此称为叠板。
下位机按上位机指令根据传送带脉冲等触发相机,完成棉花异性纤维的分选任务。采用的硬件是[Alinx](https://www.alinx.com/)的AC7Z100C ZYNQ开发板。
![qwe](README.assets/qwe.png)
本IO扩展版提供了
图中左到右分别为EPC9600IO扩展板糖果分选机整机相机上位机编码器。其中相机的触发线、编码器连接到IO扩展板相机、上位机、EPC9600连接到以太网交换机。
- xxxxxx
IO扩展板提供了
接线时12V电源连接到IO扩展板的电源接口相机线应连接相机触发接口`TRIG1`、`TRIG2`和对应的`GND`接口,编码器线应连接在编码器输入接口`E1`和对应的`GND`接口,物体传感器应连接输入接口`E3`和对应的`GND`接口。注意底板不连接任何外部电源。
- 1个12V电源输入
- 2个相机触发1个为冗余
- 2个编码器输入1个为冗余
- 4个阀板接口3个为冗余
要注意IO扩展板上的供电接口仅仅用于IO扩展板自身的供电EPC9600的供电需要另外提供。<br>下面是接线图:
![接线图待补充](README.assets/接线图.png)
开发和部署说明见[doc/develop_and_deploy.md](doc/develop_and_deploy.md)
## 目录结构
- doc为说明文档包括开发和部署细节、硬件设计的描述等
- [deploy.md](./doc/deploy.md)为开发和部署说明,首先看这个文档
- [hardware_description.md](./doc/hardware_description.md)为PCB设计说明
- [develop_and_deploy.md](doc/develop_and_deploy.md)为开发和部署说明,首先看这个文档
- [hardware_description.md](doc/hardware_description.md)为PL端逻辑设计说明阐述了硬件工作的整体流程
- [pl_reference_mannual.md](doc/pl_reference_mannual.md)为PL端逻辑在AXI总线上映射的寄存器参考手册
- [sim_uppermachine_manual.md](doc/sim_uppermachine_manual.md)为模拟上位机运行的参考手册
- script为配置系统、安装环境、安装可执行文件、卸载可执行文件等的脚本
关于脚本的使用,见[doc/develop_and_deploy.md](doc/develop_and_deploy.md)
- target.sh为嵌入式linux中自动启动应用程序脚本
- load\*.sh为嵌入式linux中加载驱动的脚本
- .bashrc为嵌入式linux中配置环境变量的脚本
- protocol为上位机和下位机通信的协议
- hardware下位机主板、接口板、底板等的硬件设计
- source为可执行文件的源程序
## 喷阀原理
喷嘴由两片CNC加工的金属工件拼合而成每一片工件上有48个深度为喷嘴宽度的一半的沟槽两片拼合形成截面为矩形的48个喷嘴通过软管连接到喷阀的气流出口。打开相应喷阀就会在喷嘴处射出气流。喷嘴以喷出气流向下的方向安装整体平行于传送带滚筒在传送带末端上方。如图
<img src="README.assets/20230208200017.jpg" alt="20230208200017" style="zoom: 50%;" />
工作时射出的气流将瑕疵糖果向下吹走,正常糖果被传送带喷出,如下视频
<video src="README.assets/144262e7fd3707720962e083d5304a7e.mp4"></video>
- pl_platform为PL端硬件设计
- xme0724ioextend为IO叠板的原理图和PCB
- source为AC7Z100C板子上运行的源程序和模拟上位机程序
- liunx_app为Linux上运行的应用程序即业务逻辑
- linux_driver为Linux上的驱动用于控制自定义的PL端硬件其中drv_test结尾的目录为相应驱动模块的测试应用程序
- petalinux_config为petalinux工具在编译u-boot、kernel、rootfs前进行的配置
- petalinux_devicetree为本次自定义的Linux设备树文件部分其余设备树为自动生成的
- petalinux_hwdescription为petalinux所使用的硬件描述文件包含了vivado工程中的比特流等信息
- sim_uppermachine_manul为基于pyside6所编写的软件用于模拟上位机发送指令方便调试
## 版本
@ -56,11 +61,11 @@ b分支编号-p生产环境项目名-t分选对象[-其他特点1[-其他特点2
版本号遵循定义如下(不使用中文,小写无空格)
```shell
b分支编号[-d文档版本]-hPCB设计版本[-lFPGA设计版本]-p协议版本[-s脚本版本]-aAPP代码版本[-i驱动版本][-c系统编译配置版本][-e设备树版本]
b分支编号-d文档版本-hPCB设计版本-lFPGA设计版本-p协议版本-s脚本版本-aAPP代码版本-i驱动版本-c系统编译配置版本-e设备树版本
```
中括号在这里表示可省略的项,中括号本身不应出现在实际命名中。分支编号和分支命名中编号一致。各部分版本应在相应目录下创建文件注明,比如`2.1`版本的PCB设计PCB工程目录中建立`version`文本文件,内容为文本`2.1`。对于涉及整体设计的大改动版本号加`1`,其余改动版本号加`0.1`。每个分支的版本各自独立,新分支的版本从`1.0`起计算
分支编号和分支命名中编号一致。各部分版本应在相应目录下创建文件注明,比如`2.1`版本的PCB设计PCB工程目录中建立`version`文本文件,内容为文本`2.1`。对于涉及整体设计的大改动版本号加`1`,其余改动版本号加`0.1`。每个分支的版本各自独立,新分支的版本从`1.0`起计算,也可从建立分支处原有版本起计算
## 作者
作者觉得还是不说明作者是谁比较好,免得毕业后有提着示波器的师弟师妹来问问题
作者徐耀随时欢迎师弟师妹7x24提着示波器的来问问题联系方式QQ1170701029微信CeRnYool。

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 KiB

View File

@ -1,67 +0,0 @@
# 下位机的部署步骤
按下面标题的顺序进行,不要轻易跳过步骤,除非你知道你在做什么
## 硬件连接
### 启动方式选择
EPC-9600I-L支持从NAND或者SD卡启动通过 S7拨码开关控制拨码开关如图全部设置为OFF表示从NAND启动。
<img src="deploy.assets/5e6af30fa23d9.jpg" alt="5e6af30fa23d9" style="zoom:33%;" />
### IO和供电连接
完成以下步骤后,应如下图所示
1. 将IO扩展板插入J1牛角座
2. 按接线图连接相机触发线、编码器的任一相、阀板
3. 按接线图连接IO扩展板的电源
4. 按接线图连接EPC9600的电源
5. 按接线图连接网线到交换机
6. 连接调试用电脑到交换机
<img src="deploy.assets/20230208183606.jpg" alt="20230208183606" style="zoom: 33%;" />
启动交换机、EPC9600、IO扩展板的电源
## 软件配置
### 登录和配置
断开并禁用电脑连接的其他网络和网络适配器包括无线网将电脑连接EPC9600的网口设置到192.168.1.0/24网络中
SSH登录账号`root`,密码`root`<br>出厂默认IP为`192.168.1.136`
可以使用任何SSH软件进行登录推荐`Xshell`连接后执行下面的命令设置新的时间和IP
```shell
[root@epc-9600 ~]# date 2023.02.08-15:34:00
[root@epc-9600 ~]# hwclock -w
[root@epc-9600 ~]# eeprom net set ip 192.168.2.9
```
时间不要照抄上面的命令设置为当前时间即可IP必须为`192.168.2.9`,执行下面命令重启
```shell
[root@epc-9600 ~]# reboot
```
### 安装下位机软件
因为设置了新的IP所以将电脑连接EPC9600的网口设置为`192.168.2.11/24`重新SSH连接IP为`192.168.2.9`的EPC9600。同时启动SFTP软件推荐`Xftp`,将[script/S90target](../script/S90target)传输到EPC9600的`/tmp`中,运行下面命令配置下位机软件自启动:
```shell
[root@epc-9600 ~]# wr mv /tmp/S90target /etc/init.d/
[root@epc-9600 ~]# wr chmod 755 /etc/init.d/S90target
```
用相同的放将本仓库release中`app.zip`解压出的下位机软件`target`传输到EPC9600的`/tmp`中,运行下面命令安装下位机软件:
```shell
[root@epc-9600 ~]# wr mv /tmp/target /root
[root@epc-9600 ~]# wr chmod 755 /root/target
[root@epc-9600 ~]# sync
```

View File

@ -1 +0,0 @@
0.2

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More