跨硬件软件描述语言


跨硬件软件描述语言
==================
Trans-hardware-software Descript Language
=========================================

## 0.环境
---------

    一个环境中的对象应该圈起来。如果是多个环境叠加(这是有可能的),那就意味着有交叉的域。
    
    如果一个环境中的对象什么都没有,那就是一个空环境。
    
    例子:
    
    |--------|
    | 布丁   |
    | 狗A    |
    |--------|        ……(环境1)
    
    ↑这个环境里有一个布丁和一条狗。
    
    也可以画的比较弯曲:
    
    /--------
    | 布丁   |
    | 狗A    |
    --------/        ……(其实还是环境1)
    
    
    也可以画的大一点宽一点:
    
    |--------------------------------|
    |                                |
    |                         布丁   |
    |                                |
    |   狗A                          |
    |                                |
    |--------------------------------|        ……(其实还是环境1)
    
    ↑这个环境也是有一个布丁和一条狗。
    
    |--------|
    |        |
    |        |
    |--------|    ……(环境2)
    
    ↑这个环境什么也没有。

## 1.实物
---------

    一个物体就是一个具体的物理对象。比如人,物,某个机械结构部件。
    
    我们看环境1:
    
    |--------|
    | 布丁   |
    | 狗A    |
    |--------|        ……(环境1)
    
    这里其实就有两个东西:布丁,狗。
    
    物体用方括号括起来强调他当时物质性。
    
    例子:
    
    |--------|
    | [MCU]  |
    | 狗A    |
    |--------|        ……(环境3)
    
    ↑这个环境有一条狗和一块MCU。
    
    更多的例子:
    
    |-------------|
    |    [MCU]    |
    |    [stm32]  |
    |-------------|        ……(环境4)
    
    这个环境↑没有狗了,有一块MCU和一块stm32。
    
    注意[MCU]和[stm32]是不同的。其实来说我们买不到[MCU],我们只能买到 [stm32]。
    
    那么[MCU]到底是什么?留给你们。
    
    不太强调的物质用 () ,例如
    
    |----------------------|
    |    (光传感器) [灯泡] |
    |----------------------|        ……(环境x)
    
    这个环境有一个(光传感器),还有一个[灯泡]。
    
## 2.实物的软件设施和穿戴设备
-----------------------------

    如果一个实物,也就是硬件上面搭着一个什么软件,就在他后面后缀一个 / 和相应的软件设施。
    
    |-------------|
    |    电脑     |
    |-------------|        ……(环境5)
    
    ↑这里是一个环境,然后这个环境有台电脑。
    
    |----------------|
    |    电脑/linux  |
    |----------------|        ……(环境6)
    
    ↑这里是一个环境,然后这个环境有台电脑,跑着linux。
    
    /可以连用。
    
    |-----------------------|
    |    电脑/linux/apache  |
    |-----------------------|        ……(环境7)
    
    ↑这里是一个环境,然后这个环境有台电脑,跑着linux和apache。
    
    |------------------------------|
    |    电脑A/linux/apache        |
    |    电脑B/windows/视频播放器  |
    |    电脑C/mac/iTunes     [狗A]|
    |------------------------------|        ……(环境8)
    
    ↑这里是一个环境,然后这个环境有三台电脑,一台跑着linux,还跑了个Apache,一台跑了windows,上面还有个视频播放器,还有一台是一个mac,上面有个iTunes。此外这个环境还有一条狗。
    
    用 + 表示这个实物还穿戴的设备。
    
    |-------------------------------------|
    |    电脑A/linux/apache               |
    |    电脑B/windows/视频播放器         |
    |    电脑C/mac/iTunes     [狗A]+收音机|
    |-------------------------------------|        ……(环境9)
    
    ↑这里是一个环境,然后这个环境有三台电脑,一台跑着linux,还跑了个Apache,一台跑了windows,上面还有个视频播放器,还有一台是一个mac,上面有个iTunes。此外这个环境还有一条狗。这个狗还带着一台收音机。
    
## 3. 解析式
------------

使用 = 表示左侧的东西可以解析为右边。

应该保证这种解析是相等的,完备的。

例如:

%%%
冯氏机 = 输入设备 + 输出设备 + 存储器 + 运算器 + 控制器  
                                                …… 式子1
%%%

就一种理解的方法来说,我们举个不一定大家都认为的例子:

%%%
计算机 = 计算机的软件 + 计算机的硬件 
                            …… 式子2
%%%

又例如:

%%%
振华中学2003级5班 = 振华中学2003级5班老师们 + 振华中学2003级5班学生 
                                                        …… 式子3
%%%

又或者:

%%%
振华中学2003级5班 = 振华中学2003级5班委会 + 振华中学2003级5班非班委学生 
                                                        …… 式子4
%%%

%%%
振华中学2003级5班 = 振华中学2003级5班的公共财物 + 振华中学2003级5班学生老师 
                                                        …… 式子5
%%%

注意到,对比式子3和式子4,式子3认为振华中学2003级5班老师们也是振华中学2003级5班的一部分,
而式子4则不认为振华中学2003级5班老师们也是振华中学2003级5班的一部分。

对比式子3和式子5,式子5认为振华中学2003级5班的公共财物(扫把,黑板,桌子凳子之类的总和)也是振华中学2003级5班的一部分,而式子3则不认为振华中学2003级5班的公共财物也是振华中学2003级5班的一部分。同时他们都认为振华中学2003级5班老师们是振华中学2003级5班的一部分。

那这个振华中学2003级5班的公共财物又是什么呢?假如振华中学2003级5班的教室是这样子的而且刚刚就是这样子的:

|----------------------------|
|窗A         黑板          门|
|卫生工具    讲台      饮水机|
|桌子1   桌子2  桌子3  桌子4 |
|凳子1   凳子2  凳子3  凳子4 |
|桌子5   桌子6  桌子7  桌子8 |
|凳子5   凳子6  凳子7  凳子8 |
|桌子9   桌子10 桌子11 桌子12|
|凳子9   凳子10 凳子11 凳子12|
------------------------------            ……(环境10)

如果门窗也属于公共财物,那么基本上:

振华中学2003级5班的公共财物 = 窗A + 黑板 + 门 
    + 卫生工具 + 讲台 + 饮水机 + Σ(1,12) 桌子i 
    + Σ(1,12) 凳子i 
    
如果振华中学2003级5班的教室不是这样子的……那就看振华中学2003级5班的教室是什么样子的吧 :-)

## 4.抽象系统总体

解析式的一个常见用法是表述整个系统由什么构成:

%%%
系统总体 = 系统的部分1 + 系统的部分2 + 系统的部分3 ……
        …… 式子6
%%%

例如:

%%%
系统总体 = 环境9 + 环境11
%%%

|-------------------------------------|
|    电脑A/linux/apache               |
|    电脑B/windows/视频播放器         |
|    电脑C/mac/iTunes     [狗A]+收音机|
|-------------------------------------|        ……(环境9)

|-------------------------------------|
|    广播台      余淮                 |
|-------------------------------------|        ……(环境11)

## 5.系统流程/线路/信息介质

    如果是双向的通路,也即A可以传给B,B也可以传给A,画 -
    如果是单向的,画 ->
    可以直接标注通路的介质,例如(USB线),(电磁波)
    可以直接写不同的case
    直接用传感器感知的环境动态使用 ~~
    
    例如:
    
|---------------------------------------------------------------|
|                                                               |
|    |-------------------------------------|                    |
|    |    电脑A/linux/apache               |                    |
|    |    电脑B/windows/视频播放器         |                    |
|    |    电脑C/mac/iTunes     [狗A]+收音机|                    |
|    |-------------------------------------|        ……(环境9) |
|                                    ^                          |
|        ----------------------------+ 电磁波                   |
|       |                                                       |
|    |-------------------------------------|                    |
|    |    广播台      余淮                 |                    |
|    |-------------------------------------|        ……(环境11)|
|                                                               |    ……(环境12)
|---------------------------------------------------------------|

就是说,广播台通过电磁波传递信息给收音机。

|---------------------------------------------------------------|
|                                                               |
|    |-------------------------------------|                    |
|    |    电脑A/linux/apache               |                    |
|    |    电脑B/windows/视频播放器         |                    |
|    |    电脑C/mac/iTunes     [狗A]+收音机|                    |
|    |-------------------------------------|        ……(环境9) |
|                                    ^                          |
|        ----------------------------+ 电磁波                   |
|       |                                                       |
|    |-------------------------------------|                    |
|    |    广播台 <-(智力)-- 余淮           |                    |
|    |-------------------------------------|        ……(环境11)|
|                                                               |    ……(环境12)
|---------------------------------------------------------------|

这就是说,余淮通过智力调用广播台。注意到余淮本身就有直接感知环境的能力。

我们这里假设,余淮一看到灯光就会去调用广播台:

|---------------------------------------------------------------|
|                                                               |
|    |-------------------------------------|                    |
|    |    电脑A/linux/apache               |                    |
|    |    电脑B/windows/视频播放器         |                    |
|    |    电脑C/mac/iTunes     [狗A]+收音机|                    |
|    |-------------------------------------|        ……(环境9) |
|                                    ↑                          |
|        ----------------------------+ 电磁波                   |
|       |                                                       |
|    |-------------------------------------|                    |
|    |   广播台 <-(智力)-- 余淮~~看到了灯光|                    |
|    |-------------------------------------|        ……(环境11)|
|                                                               |    ……(环境12)
|---------------------------------------------------------------|

同时,狗如果听到了G,就会去开电脑C,听到了其他的就会去开电脑A:

|---------------------------------------------------------------|
|                                                               |
|    |------------------------------------------|               |
|    |    电脑A/linux/apache <--------+ 其他    |               |
|    |    电脑B/windows/视频播放器    |         |               |
|    |    电脑C/mac/iTunes  <-听到G-[狗A]+收音机|               |
|    |------------------------------------------| ……(环境9)   | 
|                                    ↑                          |
|        ----------------------------+ 电磁波                   |
|       |                                                       |
|    |-------------------------------------|                    |
|    |   广播台 <-(智力)-- 余淮~~看到了灯光|                    |
|    |-------------------------------------|        ……(环境11)|
|                                                               |    ……(环境12)
|---------------------------------------------------------------|

这样子我们就画好了一整个的,如果余淮看到了灯光,他跑去开启广播台,然后狗A听到了之后去开电脑A或者电脑C的过程。

另一个可能是我们不用电磁波,用耳机或者USB之类的:

|---------------------------------------------------------------|
|                                                               |
|    |------------------------------------------|               |
|    |    电脑A/linux/apache <--------+ 其他    |               |
|    |    电脑B/windows/视频播放器    |         |               |
|    |    电脑C/mac/iTunes  <-听到G-[狗A]+耳机  |               |
|    |------------------------------------------| ……(环境9)   |
|                                    |                          |
|        ----------------------------+ 耳机线                   |
|       |                                                       |
|    |-------------------------------------|                    |
|    |   录音机 <-(智力)-- 余淮~~看到了灯光|                    |
|    |-------------------------------------|        ……(环境11)|
|                                                               |    ……(环境13)
|---------------------------------------------------------------|

这里我们搞了一条耳机线和一台录音机,然后狗A配了一台耳机,来实现环境12差不多的效果。

6. 更多的例子
-------------

        |-------------------------------------------------------------|
        |                                                             |
        |                          USB线直连PCB                       |
        |    %室温上升% ~~ (温度传感器) ----> [stm32]/机械臂控制程序  |
        |                                        |   wifi             |
        |               手                       v                    |
        |      工作人员 --> (报警按钮)     
原文地址:https://www.cnblogs.com/worker1/p/10083359.html