Inferno #03
22 ноября 2002 |
|
Diploma - Diploma Alone Coder-a. Development of software for special logic analyzer. Part 2.
5. Practical part 5.1. Features of programs for OEVM For the design in Assembler software for the device, based on single-chip computer, you need to know the architecture and system commands This OEVM. AT89C52 microcontroller has many registers located in address space of RAM and 111 of the special functions registers machine instructions [1] format, 1,2, or 3 bytes with different arguments and methods Addressing designed for a variety of data in these registers, and other areas of memory (internal data RAM, ROM, external RAM), as well as bi-directional external ports. OEVM has: ■ 8 KB of internal ROM; ■ 32 general purpose registers (GPR) divided into 4 blocks and 8 are case R0-R7; ■ 128 user-defined program-controlled flags; ■ register set of special functions (SFR, Special Function Registers); ■ 256 bytes of internal data RAM which intersects the lower 128 bytes of memory register of special functions. RAM data is available only through indirect addressing register of registers R0, R1. In OMEVM provides possibility to set the frequency of internal oscillator with quartz, LC-chain or external oscillator. Clock rate should not exceed 24 MHz. Special functions registers with the addresses given in Table 5.1.1 (registers, allowing bit-addressable, labeled asterisk): Table 5.1.1 Designation Name Address * ACC Battery 0E0h * B Register B 0F0h * PSW status register program 0D0h SP stack pointer 81h DPTR pointer data. 2 bytes: - DPL - low byte 82h - DPH - high byte 83h * P0 Port 0 80h * P1 Port 1 90h * P2 Port 2 0A0h * P3 Port 3 0B0h * IP priority register Interrupt 0B8h * IE Registry permissions Interrupt 0A8h TMOD Register regimes Counter / Timer 89h * TCON Control Register Counter / Timer 88h TH0 Timer / Counter 0. High byte 8Ch TL0 Timer / Counter 0. Low byte 8Ah TH1 Timer / Counter 1. High byte 8Dh TL1 Timer / Counter 1. Low byte 8Bh * SCON Office after successive port 98h SBUF buffer followers lnogo port 99h PCON Management consumption 87h Battery. ACC - register battery. Commands for working with battery, use the mnemonic "A", For example, MOV A, P2. Mnemonic "ACC" is used, for example, when addressing the bitwise battery. Thus, the symbolic name of the fifth bit accumulator will be as follows: ACC.5. Register B. Used during the operations of multiplication and other instructions deleniya.Dlya register B may be regarded as Additional Cache Register. Register state of the program. Register PSW contains the status flags of the program. The stack pointer SP. 8-bit register, whose contents are incremented before writing data onto the stack when the instruction PUSH and CALL. At initial reset stack pointer is set to 07h, and the stack in the data RAM starts with address 08h. If necessary, by redefining the stack pointer the stack can be located anywhere in the internal RAM microcomputer. Data pointer. Data pointer (DPTR) consists of a high byte (DPH) and low byte (DPL). Contains 16-bit address when accessing the external pamyati.Mozhet used as a 16-bit register or as two independent eight-bit register. Port0-Port3. Special functions registers P0, P1, P2, P3 are the registersappropriate ports. Buffer serial port. SBUF represents two separate registers: transmit buffer and receive buffer. When data is written to SBUF, it comes in the transmit buffer, and write byte SBUF automatically initiates its transmission through the serial port. When data read from SBUF, they get out of the buffer receiver. Registers a timer. Register pair (TH0, TL0) and (TH1, TL1) form a 16-bit counting registers respectively taymeraschetchika 0 and timer-counter 1. Control registers. Registers are special functions of IP, IE, TMOD, TCON, SCON, and PCON contain the control bits and status bits system interrupts, timers / counters and serial port. 5.2. Development and description of the program 5.2.1. The implementation of packager using the method bit RLE with segmentation The most critical time of execution part of the program is a wrapper for the method of bit RLE with simultaneous compressed data to the serial port. Because this area is crucial for the program, the development of the program code is best to start with him. Section 4.1 was estimated time in machine cycles AT89C52 between two transmitted bytes. This allows you to choose the structure of the inner loop program, focusing on the execution time one iteration of the loop count consecutive identical bits. This time is not may not exceed: 1000/128 ¢ 8 (MC) and in practice - still less to allow time for the rest of the program, In addition to the cycle. To count the number of identical bits we definitely need to read an external memory command movx a, @ dptr or a similar command movx a, @ Ri, use registers R0 or R1. In this case, it is not makes a difference, since both she and the other the team performed up to 2 MP. In the transition to each of the next byte of the address must increment based loop within a quarter of the RAM. Of course, not applicable fragment, making it directly: ... mov a, dph inc dptr xrl a, dph anl a, # 30h xrl a, dph mov dph, a ... because one only this snippet runs in 1 +1 +1 +1 +1 +1 = 6 MC. Therefore expedient to to calculate the loop number of passes the cycle so as to increment the high byte address took place after exiting the loop, and in the loop have only inc dpl (1 MP). Next, we need to organize check bits in the bytes read and output of the cycle when the desired value of this bit. Such a problem can be solved by a team jb acc.N, label (or jnb), where N - number inspected bits. But in this case you need to have in the program 16 (8 bits · 2 polarity) similar sites that are not very convenient. Especially in view of the team cycling djnz counter, loop (2 MC), all cycle will take 2 +1 +2 +2 = 7 MP, almost at the limit of the allotted time. Thus, it makes sense to "expand cycle "that is, group actions, carried out in several passes cycle in one pass. In our case it suffices to 4 passes within a single (a fragment to count zero bits): bp01: movx a, @ dptr; 2 MC orl orer, a; an MC: accumulate ; Unit in orer inc dpl; an MC bp02: movx a, @ dptr orl orer, a inc dpl bp03: movx a, @ dptr orl orer, a inc dpl bp04: movx a, @ dptr orl orer, a mov a, orer; an MC anl a, masker; an MC jnz bp0_e; 2 MC: Among 4 Other ; Culated caught bytes ; Unit in the bit of ; Mask masker mov orer, # 0, 1 MC inc dpl djnz b, bp01; 2 MC ... Tags bp01, bp02, bp03 and bp04 - four the loop, and the choice of one of them depends on where the relative segment (128 bytes) and the section of memory (256 bytes) Located dptr: increment dph or processing end of the segment must occur after the release of the loop. In this case, after the release from the cycle (After djnz) should be checked: ■ Do not need to increase dph? (Dpl = 0?) ■ not over whether the memory segment? ((Dpl-segbeg) mod 256 = 128?) At the exit from the cycle of jnz necessary In addition, find bytes, where, after zero bits edinitsa.Pust first appeared in R0 before the loop is placed content dpl. Obviously, the search unit to the address do not need to: ... bp0_e: mov a, R0; in R0 - location ; Dptr to cycle cjne a, dpl, bp0_en0; << jmp bp0rese; reduce dpl bp0_en0:; at 3, but not dec dpl; less than before cjne a, dpl, bp0_en1; match jmp bp0rese; with R0 bp0_en1:; dec dpl; cjne a, dpl, bp0_en2; jmp bp0rese; bp0_en2:; dec dpl;>> bp0rese: movx a, @ dptr; looking for first unit , With 4 (or less) ; Adjacent bytes inc dpl anl a, masker; check bits , The mask signal jz bp0rese; continue the search, And if zero dec dpl; overflow dpl , Can not be, because ... And we came out of the inner ; Loop on the unit ; Bat. Before entering the loop is necessary to calculate the number of passes and to choose the right point vhoda.Vsego several possible options regarding the location and dptr addresses beginning segment (N = number of elementary through the loop): a) segbeg <128: appear before the end of the segment. N = (segbeg +128- dpl) mod 256; b) segbeg = 128: the end of the segment, while dpl = 0. N = (segbeg +128- dpl) mod 256 = 256-dpl; c) segbeg> 128 and dpl> 128: earlier will dpl = 0. N = 256-dpl; d) segbeg> 128 and dpl <128: appear before end segment. N = (segbeg +128- dpl) mod 256. The initial value of loop counter (Count) depends on N as follows: N 1 2 3 4 5 6 .. 127 128 count 1 1 1 1 2 2 .. 32 32 Therefore, the count is given by: count = (N +3) div 4 that the assembler AT89C52 easiest way to implement a sequence of commands (if value of N placed in the battery): ... dec a rr a; Rotate right rr a; in 2 categories inc a mov b, a; number of passes loop jbc b.7, bp0i_x1; choose one of the ; Four entrances to the cycle jbc b.6, bp03; 01 immediately reset ; Testable bits 6.7 jmp bp04; 00 bp0i_x1: jbc b.6, bp01; 11 jmp bp02; 10 The rest of the procedure, less packaging slozhna.Vnimaniya deserves only a small ragment, where a short (no more than than 128 bytes) conditional jump due to large series have to continue long unconditional: ... cjne a, dpl, bp_inseg_jmp , Reduces the number of remaining segments djnz R7, bp_main_jmp; continue, And if not zero call waitsend; call p / n waiting ; Transfer bytes jmp SENDSUM; issuing control , Sums ;;;;;;;; OUT of p / n READ CHANNEL ;;;;;;; bp_inseg_jmp: jmp bp_inseg; compensation is short. ; Transition cjne C pom.dlinnogo transition. bp_main_jmp: jmp bp_main; compensation for short ; Transition djnz 5.2.2. Implementation the main loop program After reset or turn on the device, after initializing and conducting self-management program ALS goes to the main loop. The main program loop is engaged in obtaining and processing training posts. Receiving the frame was convenient to realize through the routine returns after successful or unsuccessful reception of a frame in the accumulator exit, in case B - CPC, and in the memory at FramBuf - adopted by the utility of the data frame (ie there are no bytes of the CPC, the length and control amount). Compliance with the return value of the battery mean errors made by the following: ACC type errors 0 no error 1 error receiving CPC 2 invalid frame length 3 checksum error Sub-frame reception has access to If a connection failure during the reception of the frame. Remote connection is recognized as an excessively long pause after taking the bytes and wait for the next. The maximum delay between bytes given pause in the program constant: GetWait equ 4000; the maximum delay between And the taking of bytes (x5 MC) The main loop can be implemented as follows: ;-------- Main loop (MainLoop) ------- MainLoop: call GETFRAME; receiving a frame from ; Serial ; Port buffer cjne a, # 0, ML_er1; Jump if ; Receive an error (A <> 0) mov a, b; CPC anl a, # 7fh; dumping older ; Bit CPC cjne a, # 08h, ML_2; Check a dig at ; Existence ML_2: jc ML_noer; transition, if not ; Error command ; (A <08h, C = 1) ML_coer: call _ECOM; Call podprog ; FRAMEWORK ERROR COMMAND jmp MainLoop; Transition to ; Beginning of the cycle ML_noer: mov dpl, # Low (CallTab); <<Writes in ; Dptr address ; Under the table mov dph, # High (CallTab); programs>> add a, acc; shift accumulators ; Torus left jmp @ a + dptr; Go to the table ; Subroutine calls ML_er1: djnz acc, ML_er2; jump if not , Error receiving CPC , 1 = error receiving CPC jmp MainLoop ML_er2: djnz acc, ML_er3; jump if not ; Data error 2 = invalid frame length ; Or field data KOP.7 = 0 call _EIO; subroutine call ; ERROR DATA jmp MainLoop ML_er3: 3 = checksum error call _EIO; subroutine call ; ERROR DATA jmp MainLoop ;---- End of main loop (MainLoop) --- Here you can see that the transition to a handler command or query is implemented through a table routines. Such funds provided by the system commands OEVM, very convenient In this case, since the number of processed CPC can easily be increased, and This program does not become cumbersome and not will run slower. The main part of the transition mechanism on the table - the team jmp @ a + dptr, which makes a transition to a computed address dptr + ACC. In our case dptr points to the first address table, and the ACC contains the offset (a multiple of 2). The table consists of several short transitions (ajmp), each of which indicates their program-handler. At the end of the handlers is a team jmp MainLoop to return to the top of the main loop. 5.2.3. The composition of texts software modules Microlight Main module is SLA.asm. He contains: ■ Ads global constants; ■ Directive memory allocation; ■ initialization code; ■ the main loop and the transition table; ■ general routine correction dptr after crossing the section of memory; ■ Directive compiling other modules program. Module io.asm, implements the basic input / output operations in sequential port contains the following necessary this subroutine: ■ SENDSUM - a procedure for the port checksum-csum. Here and further input - in the battery; ■ SEND - the procedure for issuing byte buffer serial port without waiting for his transmission, with accumulation of CRC; ■ movsbuf - a procedure for byte in the buffer of the serial port without waiting for its transmission, without the accumulation of control amount; ■ SENDKOP - the procedure for issuing the serial port of the CPC and its complement to zero; ■ SENDACC - a procedure for content battery in the serial port expectation of the transfer and accumulation of CRC; ■ waitsend - procedure standby transmission bytes from the buffer of the serial port; ■ GETFRAME - a procedure for receiving the frame serial port; ■ GETBYTE - a procedure taking a byte from serial port. The module contains routines messages.asm issuing simple response messages: ■ _COMOK - routine issuance of a ; ■ _ECOM - routine processing errors team. Issuing a ; ■ _EDATA - routine processing errors data. Issuing OS ; ■ _EIO - routine issuance OS <Error Data>; ■ _RESOK - routine issuance of a . Control.asm module contains procedures control of RAM and ROM: ■ SIGNS - control ROM (8k) signature analysis; ■ EXRAM - control of external RAM (16k) with cleaning. _rchan.asm Module contains procedures processing your request <Read channel>: ■ _RCHN - general routine analysis and output data channel the most effective method of encoding; ■ rch_const - a procedure for data constant (not changing) channel; ■ rch_noise - a procedure for data fluctuating (noise) channel; ■ bitpack - the procedure for issuing a non-permanent data kanala.Na the basis of statistics channel selects the encoding method: uncompressed or compressed at the bit method RLE; ■ FRONTS - procedure of counting statistics (Number of edges) of the signals in this area RAM. Other modules contain one important protsedure.Vhodnye data for these procedures should be adopted in the buffer frame. The module contains a routine _rstate.asm _RSTATE, which serves to process the request <Read the status of ALS>. Module _rram.asm contains a subroutine _RRAM, serves to processing your request <Read RAM>. Module _selfc.asm contains sub _SELFC processing command . The listed programs are all list of required modules included in the software specialist logic analyzer. 5.3. Standalone debugging program model To debug the program management of ALS was used by the monitor debugger Debugger51. With this tool, you can perform c program activities such as: ■ execution until the specified operator (Lines of code); ■ Stepping through the program; ■ execution until a breakpoint; ■ Turning on and off the breakpoints; ■ view and edit the values of registers and memory cells; ■ Loading and saving the contents of all types of memory OEVM on magnetic media. Using the Debugger significantly reduced the duration of writing the main algorithms of the program through automation find and correct errors. Lack of debugging algorithms data measurements on the existing ALS offset by the creation of his model, which allowed the design of programs on a PC. For this were made as follows: ■ in the basic input / output functions (module io.asm) changes. Instead of giving data to the serial port, procedures bytes of data are entered into the external RAM, for outside the region used in 16k. ■ in the main program module disabled Challenges of self-control procedures and receiving frame. Instead of receiving a frame in the trace with Using the debugger, the registers and RAM OEVM substituted for the data frame being debugged command or query. ■ channel data generated using pseudo-random numbers by a special program written in Delphi, and tracing of goods in external RAM OEVM. Listing program-signal generator is shown in application of the graduation project. ■ When you are debugging the procedure places the call is put the breakpoint. ■ Personnel operating system returned the program management of ALS, are formed in the external memory, then discharged by means of a debugger and tested for accuracy. For example, we can show how a generated random sequence signals with an initial value of pseudo-random generator to be 2 (ris.5.3.1). Signal generator [_] [O] [X] [Generate] Seed = [2] not tested [Test] Fig. 5.3.1. Generator test signals. Below is a dump file generated by the program memory area (4 KB), where the values of sampling signals are arranged as if they were read recording scheme of ALS. This file will be used to debug a program of ALS in the Debugger Debugger-51 (Table 5.3.1). Table 5.3.1. Dump the generated signals 0000: D6D6D292-90802021-21252D2D-2D296868 0010: 68484044-44444404-04040404-00000000 0020: 40404046-66666666-66323232-32323232 0030: 1E1E1C1C-1C5C5C4C-48404040-40400404 0040: 24242424-24202060-60606060-40434347 0050: 0707078F-8F8E8E8E-CACACAC8-C8D0D034 0060: 34343434-34343430-30100000-40404040 0070: 40040404-0C0C0C0C-28282828-2A2A2222 0080: 26666646-46460602-00001010-10101414 0090: 14145454-70707070-78686868-682C2D0D 00A0: 0D050501-03030202-42424242-46464444 00B0: 44400020-20202024-2424BCFC-FCF8D8D8 00C0: D8D8D898-90909090-96161606-66666666 00D0: 66666040-40000404-0404040C-08080848 00E0: 48486868-6C6C6464-24242424-20202123 00F0: 03031313-13131616-54545454-5C484808 0100: 08282828-2C242424-24646444-44444040 0110: 40404040-02020606-06060606-26262232 0120: 727070F0-F0F8FCFC-FCBC3C1C-04040400 0130: 00000000-00444444-44444444-40202022 0140: 22222626-26262607-03034B5B-5B59585C 0150: 54141414-14100000-00202020-24242464 0160: 64646060-60404042-4A0E0E0E-0E0E0E0E 0170: 0A0A0A40-60606070-74747434-34343434 0180: 10101000-00000404-C4C4C4C4-CCCECECA 0190: EA6A2A2A-26262626-26060444-44444040 01A0: 40404040-40410101-0505151D-1D3D3D39 01B0: 39387070-70505046-46464646-46020202 01C0: 02020202-06044444-44646464-60606060 01D0: 2000080C-0C0C0C0C-0C141454-505050D0 01E0: D0F2F2F6-F6B63626-26262606-06000000 01F0: 00484848-484D4D4D-4D0D2525-21212121 0200: 21242404-04040444-54565252-52525252 0210: 52563636-36363630-20282828-28280848 0220: 484C4C44-44444444-44404000-00002020 0230: 24242626-26260642-42424242-42404404 0240: 141C1C9C-9D9DBDB9-B9B9F8F0-70545454 0250: 44444444-04040002-02020202-02626262 0260: 66666664-2C2C2828-08080808-00000044 0270: 44444444-44444424-20202030-30303636 0280: 56565652-52525A4A-0A0A0A0C-0C0C0404 0290: 24646460-60606061-61418181-85858484 02A0: 848484C4-C4C44446-46426262-6A6A2A2A 02B0: 2A3A1C1C-1C141414-14141454-54505050 02C0: 50505050-54446424-24202022-2222020E 02D0: 0E0E0E4E-4E4E4642-42404000-00000404 02E0: 04242420-20303030-71717151-5557575F 02F0: 5F5F0B0B-0A0A0A00-04040424-24646460 0300: 60606060-6464E484-84848484-848480C0 0310: C0C84A4A-4E4E4E5E-7E3E3636-36323232 0320: 30300040-44444444-44440400-00000000 0330: 00000004-44646464-60606A6A-2A2A0E0E 0340: 0F0F0F17-17171551-51505050-50141414 0350: 14342424-24202020-20202000-40444C4C 0360: 4E4E4E4E-4A4A4242-42828484-A4A4A4A0 0370: A0A02020-40404454-54545450-10101818 0380: 181C1C1C-0C0C0606-22222262-62666666 0390: 64646404-04040400-00000000-00000041 03A0: 4D4D4D4D-5C7C7C3C-34303032-32323212 03B0: 06060646-46444040-40404040-40400424 03C0: 24242424-24202028-08080808-48404444 03D0: 44C4C6C2-C2929292-92163636-36363230 03E0: 20206060-64444444-44444000-08080808 03F0: 28282820-20202424-04444442-42434343 0400: 43031313-16161616-14343474-74747470 0410: 70684848-0C0C0C0C-0C0C0C00-00004040 0420: 40646464-64642626-22222222-22220206 0430: 46464646-42480808-0888989C-9C9C9CF4 0440: F4F0F070-70706060-60242424-04040501 0450: 01010143-43434246-666E6E6E-2E2E2E28 0460: 28080808-08004444-44444454-50505010 0470: 30303434-34242626-26060642-424A4A4A 0480: 4A4A4A0E-04040404-24202020-20202020 0490: 24646464-44404040-00001010-1014141F 04A0: 1F5F5F7B-7B7B7B7B-622222A2-80848484 04B0: 84840400-00004040-44444444-44446060 04C0: 60202828-282C2C2C-3C3C3C36-56525252 04D0: 52525252-52121614-04042420-20202020 04E0: 20206064-6464444D-4D490909-09090904 04F0: 04040404-06060602-02626262-62626664 0500: 74747474-54541414-10101090-9098988C 0510: 8C8C8CEC-EC6C6860-60202020-20242626 0520: 26262606-02424242-42424242-44040404 0530: 04243030-30303838-397D7D7D-7D5D5541 0540: 40000000-00000000-06060666-66666262 0550: 6262626A-2E0C0C0C-0C0C0808-00004040 0560: 44444454-54545410-30303030-B0B4B4B4 0570: B4B686C6-C6CECE4A-4A4A4A4A-4A4A0A26 0580: 26242424-25252521-41414141-41404044 0590: 04040404-04000020-60707070-707A7A1A 05A0: 1A1E1E1E-1E1E1604-04444440-40404040 05B0: 40400424-24242424-24244444-40404040 05C0: 40080A0A-0E0E0E0E-0E0E0E42-42434341 05D0: 61617575-757534B4-94909090-9090D0D0 05E0: D0C04040-40646424-242C2E2A-2A2A2A2A 05F0: 2A0A0A0E-0E464646-46444440-40000000 0600: 20202024-24242424-64445050-50585858 0610: 1C1C1C1C-16161606-07072723-23232323 0620: 63606464-44444444-4C0C0C08-08080808 0630: 08040404-64646464-64606060-00101092 0640: 92929696-96961616-16464642-62626268 0650: 28282828-2C0C0C0C-0C0C0444-40404040 0660: 40000000-04040424-24242033-33333373 0670: 77775757-5F5E5C18-18080808-08000004 0680: 44446464-64602020-20200000-00040404 0690: 44444448-4A4A4A4A-4A5A5E36-36363636 06A0: 32222020-A0C0C0C4-C4C4C4C4-C4C4C0C0 06B0: 80800000-00000404-2C2C2E6E-6A6B6B6B 06C0: 6B636767-67260606-04000000-00101414 06D0: 14141414-54545474-70606068-68682828 06E0: 28280C0C-04060606-06020242-42424266 06F0: 64646464-24242020-20202020-38585C5C 0700: 5C5C5C50-D0D0D0D0-D0848484-A6262626 0710: 26666363-63434307-07060604-04000000 0720: 00080808-4C4C6C64-64602020-20243434 0730: 34141414-54545454-52525212-02020206 0740: 06060606-2A2A6868-68686868-68642404 0750: 04040404-04000000-40404042-46464676 0760: 76363232-32323030-10189CDC-DCDDCDCD 0770: CDC5C101-00002020-20202424-24666666 0780: 46424242-42424242-42080C0C-0C0C0C0C 0790: 2C2C3C34-34747070-70505050-44444404 07A0: 06060606-02020202-02024260-6060646C 07B0: 6C2C2C2C-08080800-00000000-40404444 07C0: 44444444-44427233-33333333-333736B6 07D0: 9696D6C0-C0C0C0C8-48484C4C-0C0C0424 07E0: 20202020-20202464-64646464-40404000 07F0: 00000206-0E0E0E0E-0A1A1A1A-7A7A7A72 0800: 72767676-66242404-04040400-00000000 0810: 00000444-44444444-44646060-28282828 0820: 292B2F2F-2F272707-57565250-50505050 0830: 14141414-14242020-A0A0E0E0-E0E4E4E4 0840: 0C0C0C0C-0C0C0808-0A0A4242-42424246 0850: 46062626-24242424-24301050-50505050 0860: 54545454-545C0C0C-08080828-2A2A2A22 0870: 62666666-66666666-42000000-00010505 0880: 05050545-41404040-40606474-34343438 0890: 38381A1A-1A1E0686-C6C6C6C6-C6C2C2C0 08A0: C0002020-24242424-24246440-40404040 08B0: 4044444C-0C0C0808-08082820-20203434 08C0: 76767676-76725252-12121204-04040404 08D0: 04050149-49494969-6D6D6D24-24242424 08E0: 00000000-40404040-46460606-06262222 08F0: 32327272-7AFAFEDE-DEDE9E9E-90808080 0900: 80800004-04040404-04444040-60606060 0910: 24242424-24040446-464E4A4A-4A4A0A0A 0920: 0A062624-34343434-70705050-51515555 0930: 55454544-00000000-00000000-00060E2E 0940: 6E6E6E6A-6A6A6A22-22200404-04040404 0950: 00404040-40444454-54541434-34303030 0960: B0B0A0A0-A4ACECCC-CE4E4A4A-4A020202 0970: 02020606-06262620-20206060-60614545 0980: 45050504-14141410-18181858-585C5C5C 0990: 74766626-26222222-22222222-22424646 09A0: 44444404-04040400-00080808-4868686C 09B0: 6C6C6C64-64747476-36121292-92929296 09C0: 96969414-54544444-40404028-28282828 09D0: 282C2D25-05050101-01014140-40444446 09E0: 46060626-26263232-32301010-10545C5C 09F0: 5C5C4C48-48480800-20242424-24246464 0A00: 64606060-60000004-04040606-06020202 0A10: 02024242-52565676-7C7C7838-38382828 0A20: 20200101-050505C5-C5C5C5C5-C5C4C480 0A30: 82828202-0A2E2E2E-2E2E2C68-68686060 0A40: 74747454-54101010-10100000-00040404 0A50: 44444444-60606062-62222222-2A2E0E0E 0A60: 0E0E0E06-04000000-00004040-40505454 0A70: 54141434-35353131-31313131-35754646 0A80: 4646CA8A-8A8A8A8A-8A8A8284-84044444 0A90: 44444464-60606060-60202424-24243414 0AA0: 141C1C18-185A5A5A-5A5A5646-46464606 0AB0: 06062020-20202020-24242464-64444440 0AC0: 40,404,000-0008080A-0E0E0E0E-2E266662 0AD0: 70707071-71717515-15151514-10101000 0AE0: 00000404-44444464-646E6E6E-6AEAEAEA 0AF0: 8A8A8E8E-84040404-04040444-40606060 0B00: 70703030-30303414-14141454-44444242 0B10: 4242020A-0A0A0A0E-2C2C2C2C-64646464 0B20: 64646465-45010101-01010101-10141414 0B30: 14145656-72727A7A-6A6A2A2A-2E2E2E0C 0B40: 04040404-44404040-40C0C0C0-C0C0C084 0B50: 84A42424-24242420-20604040-42424252 0B60: 56161616-1E1E1A1A-18184848-4C6C6C64 0B70: 64242420-20202020-20204445-45454747 0B80: 47464642-02020202-02060E0E-2E6E6C6C 0B90: 6C686860-30303010-14141414-14141050 0BA0: 50404044-44444406-06060202-02022A2A 0BB0: 6E6E6E6E-E4E4A0A0-A0A08080-00000404 0BC0: 04044444-44444040-50101010-14151535 0BD0: 3737373F-3F3F2B2A-6A6A6848-40404444 0BE0: 44444444-00000000-20202024-24242464 0BF0: 64644444-4444440E-0A0A0A1A-1E1E1E16 0C00: 16565656-44406060-60606060-60242404 0C10:-8480C0C0-84848484 40484848-4C0C2C2C 0C20: 2E262622-22232323-23236357-54545454 0C30: 54545410-10101010-10000000-04246464 0C40: 6C6C6C68-68282A2A-02020206-06464444 0C50: 44444440-40000000-20202424-24247474 0C60: 74545454-50505818-181A9A9A-9E9E8E8E 0C70: 8A8AE2E2-62606024-24242404-04000101 0C80: 01010145-45454545-44646060-60202026 0C90: 2E0E1E1E-1E1E1E1A-1A1A1818-18404040 0CA0: 40446464-24242020-20202020-00040404 0CB0: 44444444-46464242-0A2A2A2A-2A2A2A22 0CC0: 20242474-54555151-51515111-01000484 0CD0: 84A4A4A4-A4202068-68684848-484E0E0E 0CE0: 0E060202-02020242-42404040-44444444 0CF0: 04042020-30303078-78787C5C-5C5C5C1C 0D00: 14100202-02020202-02064666-66666262 0D10: 62220200-01010105-05454544-44404048 0D20: 48484C0C-2C2C2C2C-34343010-90D0D0D0 0D30: D2D2D2D2-16161626-26262020-20202000 0D40: 00404044-44444444-04040808-28282828 0D50: 28282064-64465656-56561612-12121210 0D60: 14141414-74646060-60606064-640C0D0D 0D70: 0D0D0909-09030302-06464646-46666662 0D80: 62606060-30303014-14141414-14141414 0D90: 40404040-404C6C6C-2CACACAC-ACACA822 0DA0: 22220202-42424646-46464644-40000000 0DB0: 00002024-24242424-20606061-61415555 0DC0: 5D1D1C1C-18181818-10101252-52524266 0DD0: 66662626-26262222-20000000-00000008 0DE0: 084C4C4C-4C4C4C4C-4C484800-00202022 0DF0: 26262626-A6A6C6C6-C2D25252-52521614 0E00: 14141419-19192929-29696464-64646404 0E10: 00000000-00000000-44464646-46424262 0E20: 222A2A2E-2E2E0C0C-08081818-18505454 0E30: 54545454-54501000-00202424-24242464 0E40: 64646262-424A4A0A-0A0A0F0F-0F070504 0E50: 04444444-446060E0-E0A0A0A0-B0B4B4B4 0E60: 94949494-10105050-544E4E4E-4E4E6E2A 0E70: 22222222-22222246-46464444-44444000 0E80: 00000000-00000024-6C6C6C6C-6C686860 0E90: 60301212-12161616-16161616-52525041 0EA0: 41414545-45444420-20202020-20282828 0EB0: 2C2C6E4E-4E464242-42420202-02060606 0EC0: 06043430-303030F0-F0F4F4F4-F4E4CCCC 0ED0: 8C8C8888-08080808-04044646-66666262 0EE0: 62626262-66262606-06040405-05050101 0EF0: 01011155-5454545C-78787878-3828282C 0F00: 2C2C0404-04044444-46464642-42420222 0F10: 22222222-22222626-24246464-44444858 0F20: 58585858-D8D89C94-94949410-50507070 0F30: 60646464-64646022-22030B0B-0B0F0F0F 0F40: 0E060604-40404040-60646464-64242424 0F50: 24200000-00001010-14545454-54505050 0F60: 52524242-62222A2A-2A2A2A2E-2E2E2604 0F70: 44404040-40404040-40000404-04242424 0F80: 24202060-60707171-F1F5DDDF-DF9F9E9E 0F90: 9A121202-02020644-44444444-44404060 0FA0: 60602020-24242C2C-2C2C0C48-48484040 0FB0: 40400202-02020606-06161616-36363070 0FC0: 70707070-70703014-04040C0C-0C080808 0FD0: 48484C44-46464642-62636363-23232525 0FE0: 25250505-44404040-40505054-14141414 0FF0: 9C9CBCBC-BCB8B8A8-E0E2E2C2-C6460606 If you run the program under the debugger it substituted debug read command Channel 0, then put a breakpoint and then invokes the handler of the team (ris.5.3.2). [Prim.izdateley: here was a working screen monitor debugger in landscape layout, sm.grafichesky material] Ris.5.3.2. Debug programs ALS with a debugger Debugger-51. The selected area of memory containing data response message of the program ALS (Compressed data channel 0), means the debugger is saved to a file result.bin, after which the file is tested for validity and relevance generated program signals Signal generator (Figure 5.3.3). Signal generator [_] [O] [X] [Generate] Seed = [2] tested ok [Test] Ris.5.3.3. Content Checking the reply of ALS. When testing is recognized coding method specified in the data the OS, the data channel uncompressed, and then are compared decompressed signal (figure - the bottom) and the source of channel 0 (the figure - the top). 5.4. How to work with ALS The program is designed to automate the process of setting devices connected type of MWI to the bus. Device is use within predpriyatiya.Nizhe describes the basic requirements for the interface system of ALS - PC [16]: ALS is needed for the work of general purpose PC with installed software providing a specialized service logic analyzer connected to the SLA on the serial interface RS-232. PC program (pool) should manage the logic analyzer MMI (ALS) on RS-232 interface, as well as reception and display the time display diagrams of the transfer of information MMI interface for configuring hardware and localization of failures. It should also provide read and write to / from a file on magnetic disk measurement results to / from working buffer with the parameters start-up and measurement. Starting measuring LA should be initiated from the keyboard PEVM.Pri start measuring the pool must perform the following steps: ■ Stop the measurement from the previous start issuing commands to the aircraft ; ■ blanking the display timing chart from previous measurements; ■ start of measurement for the issuance of the aircraft frame parameters of the command ; ■ cyclical survey of the status byte of LA with queries <Read state LA> (with output to screen) until the end of measurement or before the intervention of an operator with PC keyboard with the issue on the LA team ; ■ If successful, the measure - Reception of LA measurement results Queries <Read channel> sequence of channels involved in the working buffer, and then output on screen or in a file. Pool must ensure that-initiated with keyboard setting to its original state LA issuance of the interface on the LA team in the initial installation, followed by a reception and indication of the status byte of the aircraft. Self-control aircraft can be run on operator commands the PC with the following results display on the PC must be submitted displee.S command and query <Read the state of LA> given in section 3.3. LA can be connected to a PC for work and two-machine odnomashinnom rezhimah.Odnomashinnym a mode of operation, when the same PC makes management of complex devices and eliminates the measurement results. In the two-machine mode, a single of PC monitors, and another - eliminates the measurement results to LA. When working in the mode of interaction odnomashinnom pool and control program can implemented in the following order: ■ removed power from the Akian and LA; ■ powered on PC; ■ call the pool, given the type of device and requested type of switching; ■ The equipment at the place specified device is installed with the required type of aircraft of switching and with a given device; ■ is powered by the aircraft; ■ means PULA LA is set to original condition and monitor the compliance of the type of switching a given type of device; ■ powered by Akian; ■ means pool has a launch options and measuring the aircraft and begins measuring the aircraft in a single mode. ■ will exit from the pool in DOS; ■ invoked and runs a control program Akian; ■ by stopping the control program in and out of it in DOS; ■ called POOL without violating state aircraft; ■ Examine the means POOL LA, and if the launch took place, taken from LA and displays the results of measurement. When working in two-machine interaction mode pool, and the control program can implemented in the following order: ■ removed power from the Akian and LA; ■ is powered by an auxiliary PC with an installed pool; ■ call the pool, given the type of device and requested type of switching; ■ The equipment at the place specified device is installed with the required type of aircraft of switching and with a given device; ■ is powered by the aircraft; ■ means PULA LA is set to original condition and monitor the compliance of the type of switching a given type of device; ■ powered by Akian; ■ means pool has a launch options and measuring the aircraft and begins measuring the aircraft in a single-mode or in batch mode; ■ invoked and runs a control program Akian; ■ Examine the means POOL LA, and if the launch took place, taken from LA and displays the results of measurement. Simultaneous (two-machine) mode can be implemented on a PC with established multi-tasking operating system, such as MS Windows. 6. The economic part of 6.1. Defining complexity of development software Developed a software product belongs to a subsystem <Quality Control>. Initial data for calculation: ■ number of varieties of forms of input Information: 2 (including variable: 2); ■ number of varieties of forms of output data: 2; ■ degree of novelty of the problem developed: B (development project using Typical design decisions as long as they changes, development projects, which have similar solutions); ■ complexity of the algorithm: 1 (optimization algorithms and simulation systems and facilities); ■ difficulty organizing control input Information: Group 12 (the input data and Documents uniform format and content implemented a formal control); ■ complexity of organizations monitoring the output of information: the group of 22 (print documents monotonous form and content, a conclusion amounts of data on magnetic media); Software product developed in krosssredah programming for processors Type MCS-51: The editor-translator Asm51Edit 2 and debugger Debugger-51 in Assembler, using standard design solutions and standard modules in a volume of 20%. The development project was conducted in an operating mode in real time. When calculating the norms of the time depending from the initial data for calculation should apply appropriate correction factors. [13] The following is a list of values of these coefficients. 1. Developing Terms of Reference: ■ developer formulation of the problem: 0,65; ■ For a software developer: 0,35. 2. Develop conceptual design: ■ developer formulation of the problem: 0,7; ■ for software developers: 0,3. 3. Development of engineering design. 1.2 K = · 1.1, 26.0, 85 ¢ 1.07. Society 2 4. Development of the project. 1.20 · 2 K = · 1.1, 32.1, 15.0, 8 ¢ 1.468. Society 2 5. Implementation. K = 1.1.1, 21.0, 8 = 0.968. Society To account for the use of personal computers in the process design introduced correction factors: ■ for the calculation of complexity (for stages TP, RP, introduction): 0,6; ■ to estimate the cost of computer time: 1.32. Since the model rules of time on programming tasks for computers were designed for legacy software development tools, then all the coefficients used should be introduce a correction factor 0,6. We define the complexity of the stages of development proekta.Rezultaty calculations are shown in Table 6.1.1. Table 6.1.1 Stage-Adjusted Costs Costs development time esidual time Project people .- coefficients given days coefficient p.koeff. Developer setting 0.65 · 0.6 12 problem TK 1931 Developer ON 0.35 · 0.6 7 Developer setting · 0.6 0.7 27 problem VC 67 Developer 0,3 · 0.6 12 Developer setting 57 1,07 x 21 problem x0, 6.0, 6 TP Developer 1,07 x TO 21 x0, 6.0, 8 June Developer setting 23 1,46 x 11 problem x0, 6.0, 6 RP Developer 1,46 x From 104 x0, 6.0, June 1954 In Developer by setting 14 0,968 x 5 e problem x0, 6.0, 6 q p Developer 0,968 x . TO 21 x0, 6.0, 6 July Total 338,164 The number of performers is calculated based on the planned fund of working time, which is 80 days, according to the formula: TObsch H = [people] F where TObsch - total time spent on all stages of development; F - Facility Planning working time. TObsch = 164 person-days, F = 80 office. days. 164 H = 2.05 people. 80 Costs of computer time are: 33.1, 32 ¢ 44 days. 6.2. Building a ribbon graph Ribbon graph is a table that lists the names of works, office performers, the complexity and the duration of the execution of each type of work. Continuation of the table is a chart reflecting the duration of each works in the form of time slots, which are arranged in accordance with the sequence of works [14]. To construct a ribbon graph, the following input data: ■ the total complexity of the development; ■ complexity of individual stages; ■ the planned development period (80 days); ■ The cast (headed by an engineer-designer). Based on the obtained in 6.1. data construct a ribbon graph (ris.6.2.1). Sta-time-duration of the work week Diya me razr.is-1 3 5 7 9 11 13 15 17 avenue n 2 4 6 8 10 12 14 16 TK 9 5 4 EP 19 1 5 4 5 4 TP on January 14 5 5 3 RP 32 2 5 6 2 3 6 3 May Imple. 6 4 2 Vsego80 5 5 5 4 5 5 5 5 5 5 6 2 3 6 5 5 4 Fig. 6.2.1. Belt schedule. 6.3. Budgeting for development Cost of software consists of the following types of costs: 1. wages developers (conditional adopted as the basis for the enterprise) for 80 working days, subject to employment by the project leader in 25% of the time. The working month equates to 21 working day: (5000.0, 25 3100) · 80/21 = £ 13,059.52; 2. More salary botchikov developed, comprising 10% of the item 1: 13,059.52 · 0.10 = £ 1,305.95; 3. social contributions, constituting 36% of the sum of items 1 and 2: 0.36 + (13,059.52 1,305.95) = 5,171.57 USD; 4. the cost of computer time: ■ amortization of computers: - Depreciation rate: 25,3 USD / day; - Operation of a computer takes 44 working days: 25.3 · 44 = £ 1,113.20; ■ energy costs: - Computer Power: 0,2 kW; - Operation of a computer takes 44 working days; - A working day is 8 hours; - Cost of 1 kilowatt-hour of electricity is equal to 0.89 rubles: 448.0, 2.0, 89 = 62.66 RUB; ■ the cost of software: - Used development tools created in the enterprise; - On the computer is running Windows'98; - The amortization period OS: 2 years; - Operation of a computer takes 44 working days; - Figure includes 250 working days; - The cost of OS distribution: 3100 rubles; - Because this OS is used for other tasks besides the software development of ALS, the introduce the utilization factor OS designers of ALS, which is equal 0.5: 44 · 3100.0, 5 = £ 136.40; 250.2 Cost of software: 13059.52 +1305.95 +5171.57 +1113.20 + 62.66 136.40 = £ 20,849.30. Level of profitability of the product is laid on the enterprise level 25% of the cost: 20,849.30 · 0,25 = 5,212.32 USD. The price of the software include: ■ cost (£ 20,849.30); ■ profitability (5212.32 USD); ■ value-added tax (20%): 0.2 + (20,849.30 5,212.32) = 5,212.32 USD. Thus, the price of software is: 20,849.30 5,212.32 5,212.32 31,273.94 = rub. 6.4. Conclusions on economic effectiveness of the product Implementation of the developed software product will: ■ improve the quality, scope, technical the level and rate performed by work program; ■ increase the volume and reduce the time information processing; ■ improve the basic performance of the company. Calculation of economic efficiency presented in Table 6.4.1. Table 6.4.1. Manual Adjustment of adjustment using the ALS Laboriousness the solution of a problem, March 25 man-hour. Number problems solved, 50 50 Mykh year Hourly rate USD. 15 15 Hour's worth of machinery - 25,3 time now. Costs for per 25.50.15 = 3 × (15 +25,3) x for the year now. = Thirty thousand x50 = 6045 Annual savings: 30000-6045 = 23955 rub. Payback: 31273,94 ¢ ¢ 1.3 years 16 months. 23955
Other articles:
Similar articles:
В этот день... 21 November