想用375+单片机用于工控采集和控制,由于是无人值守的,要求比较高,怎样防止程序走飞,或者375自身的出错? 原来是用的isa总线的卡做输入输出的,现在isa总线的主板几乎无处可寻,除非用贵得要死的工控机,所以想改成usb总线的,这样就算是笔记本也能用。本来考虑用341芯片的,但由于保密性不佳,容易被他人复制(已经吃过苦头了,郁闷),所以想用375+单片机的方案,单片机用来采集和输出数据,并通过375芯片和pc机通讯。由于单片机可以用89c51一类的保密芯片,单片机里面的程序不容易被复制,再加上单片机同时可以对输入输出的数据做编码译码工作,这样就可以大大增加复制的难度。 问题是现在担心单片机程序会走飞,375本身也会出错,有什么办法解决吗? 以前只用单片机的时候,采取的是用rc电路定时复位单片机,单片机复位后采集并通过计算后输出数据,然后就闲置等待,直到下一个硬件复位信号来后从头再做,这样就可以保证单片机可靠的工作。 现在的问题如下: 1。 pc机主动,能不能通过pc机程序对单片机复位? pc机可以定时对375进行复位,375可以通过rst脚同时让单片机复位,但这样有很多问题,一旦pc机对375复位后,pc机和375的连接就断掉了,375如果不设置工作模式,pc机是认不出来的。就算经过设置工作模式后pc机又可以认出设备,那样的话岂不是设备一直再不停的插拔,应该行不通吧? 有没有一个办法,通过pc机直接控制单片机复位,而不让375复位?这样单片机就可以通过程序,判断是否是第一次上电复位,从而设置375的工作模式(如果多次设置同样的工作模式,pc机会检测到设备插拔吗?如果不会的话,单片机程序还可以简单点,我只要用内置固件模式就足够了)。或者说,有没有不通过单片机而像341一样硬件连接的方法设置工作模式?这样就不必每次都通过程序设置了,只要单片机一复位马上可以通讯。 为了保证375可靠的工作,是否可以让单片机定时的用CMD_CHECK_EXIST命令检查375是否正常,如果不正常就复位375?(有个问题,例子程序用如果不正常,要80次复位,是为什么呢?是不是多次CMD_RESET_ALL后就相当于上电硬件复位?如果不是多次CMD_RESET_ALL,就是软复位?) 2。 单片机主动 如果采取单片机主动的形式,单片机定时硬件复位,复位后检查375是否正常工作,如果不正常就复位375,如果正常就设置工作状态(多次设置会不会有问题?)。然后采集数据,送到pc机,pc机收到数据后处理,进行计算后输出,单片机收到数据后,处理并输出给外设,然后闲置等待下一个硬件复位信号。 还有一个问题,如果pc机端程序开着,单片机检测到375工作不正常,将375复位后重新设置工作模式,pc机这边的程序是否还能继续正常工作?是否需要重新启动软件?
希望版主及各位大侠多多指点