数据采集流程整理

             数据采集2013年11月24日到现在已经有38天了。这中间断断续续的,但却始终没有停止过。回头想想我们走过的路程可分为以下六个方面:

一 准备工作

   1 执行文档

         一开始,米老师就让我们拿出一套方案来,关于这次采集数据的执行方案。每次任务的执行都要有一个规划指导。 以指导为方向,不至于走错方向。有了指导,可以弥补执行中的不足。有了指导就有了计划,计划好了,按计划一步步执行就OK了。没有可执行文档就像一只无头苍蝇,跑到哪里算哪里,想到哪里算哪里。

   2 数据模板

       以前一篇博客《数据收集感悟》中已经提到因为我们的模板不合格,所有又重新设计了模板,使用了VBA。从这模板的设计中深深体会到微软的强大。也体会到了一切以需求为主,“业务为王”。
       全心全意为人民服务是我们需要时刻谨记的。  

   3分配任务 

        为10期同学分配任务,每个学院分配一个负责人,责任到人。鉴于去年的经验,体育和美术分配了2名负责人。  

   4 培训

       说培训其实就是将你想让别人知道的东西告诉别人。你怎样将你想说的内容通俗易懂的表达给别人呢。因为10期的同学没有采集过信息,如果用一些很简练提升的话,他们可能无法理解。如果就从表面来说呢,又有一些具体的细节概括不全。所有这个时候真是很纠结,比如虚拟班这个概念吧,接触过人都知道,虚拟班其实就是上课班。但是大家刚接触又有那么多的表,《课程-教师》《虚拟班-课程》、《虚拟班-行政班》、《虚拟班-学生》等。表一多就容易混。加上表达能力又说,哎呀,纠结啊。
       这中间我们没有做任何的录像,许恕的话提醒了我,你们没有录像吗,是的,我们没有录像,如果录像就不用一遍一遍的解释了,直接让负责人去看录像就好了。我们丢失了一次记住“历史”的机会。
       

二 采集数据

    1 整理中遇到的问题

       在采集数据的过程中遇到问题是难免的,各个学院要收集数据,就需要与各个二级学院的教学秘书打交道。首先让负责人到各个学院去,指导老师整理数据。然后就是取回老师整理的数据。看似简单的路线,走下来却没有那么容易。(1)不能按时将数据采回。(2)不想整理数据,等靠。对于这些问题当时真的不知道该怎么办,只有让负责人督促,实在没有办法了,只能是我们的负责人整理数据了。但是这样也为我们以后问题的出现埋下了祸根。

三 导入数据

    1 导入问题及处理

        数据采集完成之后,最关键的就是导入数据了。导入数据是一个费时间的活,如果模板的格式正确还好,如果不正确就需要改格式。数据不正确也不能导入系统。我们系统这点做的很好,当你无法导入的时候会提示出错的原因。但是有的时候即使你将它提示的所有的问题都解决了,还是无法导入。我们采用了最笨的方法,一部分一部分的导入,结局是:导入成功。对于这一点一直找不到原因。
       此处值得开心的是,为了方便大家的导入。我们专门整理了一份导入指导,对于经常出现问题和解决方法都进行了说明。也有一些遗憾,好像大家都没怎么看。(该怎样让大家去看呢,思考……)

四 检查验收

       导入数据完成之后,就是检查验收数据的完整性和准确性。

     1 责任书

         导入数据之后,各个二级学院的教学秘书签订《责任书》。让我们的整个执行过程程序化。

     2 通知检查

         导入数据之后,通知二级学院教学秘书进入我们的系统进行检查,看导入的数据是否完整、准确。

      问题:

      虽然说是检查验收,但是真正执行又有多少。首先我们就没有为检查验收制定执行方案,所有让我们的检查工作形同虚设。也就为后来评教中问题的出现“奠定了基础”。从老师的角度想想,如果让我检查,我也真的不愿意检查。首先我不知道该这么检查。其次,检查的东西那么多,不愿意弄。
       现在想想我们检查验收可以有两种方案:
       (1)和评教系统相结合,让老师以学生身份登录评教系统,结合课表。这样就很容易发现问题。
       (2) 我们的负责人抽查,负责人以学生身份登录评教系统,结合课表检查。
       很可惜我们的两种方案都没有执行。

五 评教

      评教是对我们采集的数据正确性和完整性的一次全面的检测,这其中有开心也有失落。评教将我们数据采集中的问题全部暴漏了出来,老师与课程不对应,学生缺课,学生无法登录,整个班级缺课。有些问题我们可以当场处理,有些问题只能记录(记录问题的信息也要齐全,否则后期的的查询问题工作无法执行)。
        此处我们犯了一个严重的错误,以为评教完了任务就完成了。没有对在评教问题中出现的问题进行处理。当老师询问的时候才意识到这个问题,我们丢了颗粒归仓的步骤。
       把各个学院出现的问题分派下去,负责人负责查找原因。不查不知道,一查吓一跳。实际的问题比现在暴漏的问题多很多,让我们措手不及,这里就是由于数据采集过程和检测验收过程未执行好,而引起的问题。
       检测工作做不好,一切数据采集的辛苦都白费。      

六 问题反馈及处理 

      1 通过评教反馈

        我们数据的采集的正确性和完整性,首先受到了评教的检验。评教时出现的问题我们都进行了记录。

      2 教师反馈

         通过教师的反馈邮件,我们进行了检查,找到了问题的原因。与教学秘书核实后,进行了处理。因为有的学院问题比较严重,可能需要一些班级重新评教。

七  反思

      通过评教和老师的反馈,反应了我们的数据采集工作存在很大问题。(1)考虑问题不够全面。(2)制定的方案不能很好的执行。(3)忽视细节,而采集工作,最重要的就是细节。(4)未吸取上次采集数据的经验和教训。(5)工作拖延,没有确切的完成时间。(6)检查监督力度不够。
        在整个数据采集的过程中,收获的是什么?是思考问题的方式。


<think>好的,我需要帮用户查找关于UART与FPGA进行数据采集流程图设计方案。首先,用户提到的几个引用中,引用[3]和[4]都涉及FPGA中的UART应用和数据采集系统。特别是引用[4]详细描述了FPGA控制ADC采集数据并通过UART传输到PC的流程,这应该是最相关的。 接下来,我应该整理这些信息,绘制一个流程图的大致步骤。可能需要包括ADC控制模块、数据缓冲、UART发送控制等部分。用户需要的是具体的流程图设计,所以需要分模块说明,并确保每个模块之间的数据流向清晰。 还要注意用户提到的系统级指令,比如所有行内公式用$...$,独立公式用$$...$$,但这里可能公式较少,重点在流程图的文字描述和代码示例。需要检查是否有需要用到LaTeX的地方,比如时序参数的计算,如果有的话要正确应用格式。 然后,根据引用[3]中提到的UART配置,可能需要考虑波特率生成、数据帧格式等。同时引用[4]中的ADC和DAC控制是通过SPI通信,这里可能需要解释SPI和UART如何协同工作,不过用户主要关注的是UART部分的数据传输。 最后,确保回答结构清晰,分步骤说明,并提供相关问题。可能需要验证每个步骤是否符合引用中的设计,比如数据缓冲区的使用、状态机的设计等,确保引用标记正确。</think>### UART与FPGA数据采集系统流程图设计方案 #### 系统整体流程图 ```plaintext 启动系统 ├─> FPGA初始化 │ ├─> 配置ADC采样参数(SPI通信)[^4] │ ├─> 配置UART波特率(如115200bps)[^3] │ └─> 初始化数据缓冲区 ├─> 主循环 │ ├─> 控制ADC采集数据(触发采样/连续采样)[^4] │ ├─> 数据缓存(FIFO或双端口RAM) │ ├─> 解析PC指令(选择ADC通道/设置采样模式) │ └─> UART发送控制(将数据打包成帧发送至PC)[^3] └─> 异常处理 ├─> 校验失败重传 └─> 缓冲区溢出处理 ``` #### 关键模块设计说明 1. **ADC控制模块(SPI通信)** - 通过SPI协议配置ADC的采样通道、分辨率(如12位) - 实现采样时序控制,满足$t_{sample} \geq 1/f_{ADC\_max}$ 2. **UART发送模块** - 波特率生成:使用分频计数器,例如系统时钟$f_{clk}=50MHz$时,分频系数$N = f_{clk}/(16 \times baudrate)$[^3] - 数据帧格式:1位起始位 + 8位数据 + 1位停止位(无校验) - 发送状态机:IDLE → START_BIT → DATA_BITS → STOP_BIT 3. **数据缓冲设计** - 使用双缓冲机制:当Buffer1接收ADC数据时,Buffer2通过UART发送数据 - 触发切换条件:缓冲区满或收到PC的读取指令[^4] #### 参考代码片段(Verilog) ```verilog // UART发送状态机 parameter IDLE = 2'b00, START = 2'b01, DATA = 2'b10, STOP = 2'b11; reg [1:0] state; reg [7:0] tx_data; reg [3:0] bit_index; always @(posedge clk) begin case(state) IDLE: if(tx_start) begin tx_reg <= {1'b0, tx_data, 1'b1}; // 组装帧 state <= START; end START: if(baud_pulse) state <= DATA; DATA: if(bit_index == 8) state <= STOP; STOP: if(baud_pulse) state <= IDLE; endcase end ``` #### 典型时序参数示例 $$ baud\_divisor = \frac{50,000,000}{16 \times 115200} \approx 27 $$ (对应50MHz系统时钟下115200bps的波特率配置)
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值