Вход

Система помощи при движении по бездорожью

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 202287
Дата создания 20 мая 2017
Страниц 51
Мы сможем обработать ваш заказ (!) 26 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 600руб.
КУПИТЬ

Описание

Успешное развитие автомобильной бортовой электроники каждые 8—10 лет значительно повышает качественные показатели вновь выпускаемых автомобилей. Интерес к автомобильным электронным системам постоянно растет.
В настоящей работе описаны основные принципы построения и функциональные особенности новейшей электронной системысистемы адаптации к дорожным условиям, которая в последние годы находят все более широкое распространение в бортовом оборудовании концептуальных автомобилей и, надо полагать, в недалеком будущем будет широко применяться и на серийных. Это прежде всегонадстройка систем автоматического управления механическими узлами и агрегатами (газораспределительный механизм ЛВС, гидравлические тормоза, коробка переключения передач, рулевое и педальное управление, ходовая часть, подвеска). ...

Содержание

Введение 3
1 Описание работы системы 4
2 Разработка алгоритма работы системы 7
3 Анализ требований к микроконтроллеру 9
4 Программная реализация системы 14
Заключение 50
Список литературы 51

Введение

Электроника активно внедряется в управление автомобилем. Не остаются в стороне и полноприводные автомобили, получая все новые электронные компоненты. Идея объединения полного привода с другими электронными системами реализована в системе адаптации к дорожным условиям (другое название – система помощи движению по бездорожью).
Данная система позволяет наилучшим образом использовать возможности автомобиля при движении в различных дорожных условиях и по бездорожью. Задача водителя сводится лишь к правильному определению характера покрытия и включению соответствующего режима, а система сама обеспечит оптимальное сцепление, управляемость и устойчивость автомобиля.
Родоначальником устройств адаптации к дорожным условиям является система TerrainResponse, которая устанавливается на автомобили Land Rover с 2005 года. Другими разновидностями системы помощи движению по бездорожью являются:
SelecTerrain от Jeep;
TerrainManagementSystem от Ford;
Multi-TerrainSelect от Toyota;
X-Mode от Subaru.
В различных системах адаптации к дорожным условиям реализован общий подход к работе. Некоторые системы используют даже одинаковые режимы движения. Исключение из общего списка составляет система X-Mode, в которой помощь движению осуществляется только в автоматическом режиме.

Фрагмент работы для ознакомления

Основная цель анализа - выбрать наименее дорогой микроконтроллер (чтобы снизить общую стоимость системы), но в то же время удовлетворяющий спецификации системы, т.е. требованиям по производительности, надежности, условиям применения и т.д. Общая стоимость системы включает все: инженерные исследования и разработку, производство (комплектующие и труд), гарантийный ремонт, дальнейшее усовершенствование, обслуживание, совместимость, простоту в обращении и т.д.Для реализации поставленной в данной работе задачи достаточно восьмиразрядного МК со стандартным набором функций. Система Адаптации не производит вычислений и обработки больших массивов данных, а следовательно, мощный микроконтроллер не требуется.Основные критерии выбора микроконтроллера представлены ниже в порядке значимости: Пригодностьдля прикладной системы. Система адаптации может быть реализована на однокристальном микроконтроллере без применения специализированных компонентов. Количество основных портов ввода – 6. Требуется наличие RAM, ROM, портов вывода на ЖКИ. Ядро процессора должно обеспечивать необходимую производительность, т.е. вычислительную мощность, позволяющую обрабатывать системные запросы в течение всего срока службы автомобиля. Доступность. В настоящее время ряд микроконтроллеров постоянно обновляется, исчезают старые устройства и появляются новые серии. Необходимо учитывать изменение данного сегмента рынка и обеспечить жизнеспособность проекта.Поддержка разработчика. Техническая поддержка :ассемблеры, компиляторы, средства отладки, внутрисхемные эмуляторы, отладочные мониторы, отладчики программ в исходных текстах. Информационная поддержка. Доступность информационных ресурсов по микроконтроллерам: примеры применения, сообщения об ошибках, утилиты, в том числе "бесплатные" ассемблеры, примеры исходных текстов, поддержка проектов у поставщика. Надежность фирмы производителя. На основании сделанных выводов выбираем микропроцессор 8-bit ATtiny28L со следующими характеристиками:- RISC-архитектура;- Высокая производительность и низкое энергопотребление;- 90 Мощных Инструкций, большинство из которых исполняется за один машинный цикл;- 32 x 8 рабочих регистров;- Энергонезависимая Память Программ;- 2К байт Flash памяти программ;- Выносливость: 1000 Циклов Записи/Стирания;- Программный замок для защиты данных программы;- Вход Прерывания и Выхода из спящего режима;- Один 8-разрядный Таймер/счетчик с отдельным предделителем;- Встроенный аналоговый компаратор;- Программируемый сторожевой таймер с встроенным генератором;- Встроенный драйвер LED с программируемой модуляцией;Схема расположения выводов процессора показана на рисунке 1.Рисунок 2 – Схема выводов микроконтроллера4 Программная реализация системыОсновное тело программы:Блок описания исходных данных:.module main.c.area data(ram, con, rel)_RunTab::.blkb 1.area idata.byte 0.area data(ram, con, rel).dbfile E:\V2.0\main.c.dbsym e RunTab _RunTab c_prog_set::.blkb 2.area idata.word 1000.area data(ram, con, rel).dbfile E:\V2.0\main.c.dbsym e mAh_set _mAh_set i_speed::.blkb 1.area idata.byte 10.area data(ram, con, rel).dbfile E:\V2.0\main.c.dbsym e speed _speed c.area vector(rom, abs).org 8rjmp _timer2_ovf_isr.area data(ram, con, rel).dbfile E:\V2.0\main.c.area text(rom, con, rel).dbfile E:\ V2.0\main.c.dbfunc e timer2_ovf_isr _timer2_ovf_isr fV.even_timer2_ovf_isr::rcall push_lset.dbline -1.dbline 48Блок описания вложенных подпрограмм; //*********************************************************; #include <iom8v.h>; #include <macros.h>; #include "discharge.h"; #include "eeprom.h"; #include "LCD_1602.h"; unsigned char keyboard;; unsigned char RunTab=0;; unsigned char RunTab_old;; ; unsigned int sc_key,sc_bt1,sc_bt_ctrl,; sc_discharge,sc_eeprom,sc_lcd_write,; sc_bt1_record,sc_key_delay,sc_bt1_v_temp;; ; // discharge; unsigned char BT1_state;; unsigned int BT1_V;; unsigned int BT1_I;; unsigned int BT1_T;; unsigned int BT1_V_num;; unsigned int BT1_V_num_temp;; unsigned int bt1_v_temp;; unsigned int bt1_v_temp_1;; ; unsigned int BT1_I_SET;; unsigned int PWM;; unsigned long BT1_mAh;; unsigned long BT1_time;; unsigned int mAh;; unsigned int D882_P;; ; unsigned int mAh_set=1000;; unsigned char speed=10;; unsigned int BT1_P;; //Временная задержка-прерывание 8ms; #pragma interrupt_handler timer2_ovf_isr:5; void timer2_ovf_isr(void); {.dbline 49; TCNT2 = 0x06;//ЦШЧ°јЖК±Цµ0xFF=32us 0x00=8.192msldi R24,6out 0x24,R24.dbline 50; timer();//КµК±К±ЦУrcall _timer.dbline 54; /*----------------------------------; Переключатель-ключ программ; -----------------------------------*/; void system(void); { .dbline 64; if((sc_key_delay==0)&&(keyboard!=0)){sc_key_delay=50;}lds R2,_sc_key_delaylds R3,_sc_key_delay+1tst R2brne L3tst R3brne L3X0:lds R2,_keysettst R2breq L3.dbline 64.dbline 64ldi R24,50ldi R25,0sts _sc_key_delay+1,R25sts _sc_key_delay,R24.dbline 64L3:.dbline 65; if(sc_key_delay==1){keyboard=0;}lds R24,_sc_key_delaylds R25,_sc_key_delay+1cpi R24,1ldi R30,0cpc R25,R30brne L5.dbline 65.dbline 65clr R2sts _keyboard,R2.dbline 65L5:.dbline 66; if(sc_key==0)lds R2,_sc_keylds R3,_sc_key+1tst R2brne L7tst R3brne L7X1:.dbline 67; {keyset=key(keyboard);sc_key=16;}//delay*8ms.dbline 67lds R16,_keyboardrcall _keysts _keyboard,R16.dbline 67ldi R24,16ldi R25,0sts _sc_key+1,R25sts _sc_key,R24.dbline 67L7:.dbline 69; ; if(sc_lcd_write==0)lds R2,_sc_lcd_writelds R3,_sc_lcd_write+1tst R2brne L9tst R3brne L9X2:.dbline 70; {.dbline 71; desktop1();desktop2();desktop3();desktop4();rcall _desktop1.dbline 71rcall _desktop2.dbline 71rcall _desktop3.dbline 71rcall _desktop4.dbline 72; Capacitance_setting();discharge_speed();rcall _Capacitance_setting.dbline 72rcall _discharge_speed.dbline 73; record_setting();welcome();rcall _record_setting.dbline 73rcall _welcome.dbline 74; LCD_write_new();rcall _LCD_write_new.dbline 75; sc_lcd_write=32;ldi R24,32ldi R25,0sts _sc_lcd_write+1,R25sts _sc_lcd_write,R24.dbline 76; }L9:.dbline 77; if(BT1_I_SET)lds R2,_BT1_I_SETlds R3,_BT1_I_SET+1tst R2brne X3tst R3brne X10rjmp L11X10:X3:.dbline 78; {.dbline 79; if(sc_bt1==0)lds R2,_sc_bt1lds R3,_sc_bt1+1tst R2brne L13tst R3brne L13X4:.dbline 80; {BT1_mAh+=BT1_I;sc_bt1=450;}//ИЭБїНіјЖ,Гї3.6ГлјЖТ»ґО.dbline 80lds R2,_BT1_Ilds R3,_BT1_I+1clr R4clr R5lds R8,_BT1_mAh+2lds R9,_BT1_mAh+2+1lds R6,_BT1_mAhlds R7,_BT1_mAh+1add R6,R2adc R7,R3adc R8,R4adc R9,R5sts _BT1_mAh+1,R7sts _BT1_mAh,R6sts _BT1_mAh+2+1,R9sts _BT1_mAh+2,R8.dbline 80ldi R24,450ldi R25,1sts _sc_bt1+1,R25sts _sc_bt1,R24.dbline 80L13:.dbline 81; if(sc_discharge==0)lds R2,_sc_dischargelds R3,_sc_discharge+1tst R2brne L15tst R3brne L15X5:.dbline 82; {BT1_time++;sc_discharge=125;}//·ЕµзК±јдНіјЖ.dbline 82ldi R20,1ldi R21,0ldi R22,0ldi R23,0lds R4,_BT1_time+2lds R5,_BT1_time+2+1lds R2,_BT1_timelds R3,_BT1_time+1add R2,R20adc R3,R21adc R4,R22adc R5,R23sts _BT1_time+1,R3sts _BT1_time,R2sts _BT1_time+2+1,R5sts _BT1_time+2,R4.dbline 82ldi R24,125ldi R25,0sts _sc_discharge+1,R25sts _sc_discharge,R24.dbline 82L15:.dbline 83; if(sc_eeprom==0) lds R2,_sc_eepromlds R3,_sc_eeprom+1tst R2brne L17tst R3brne L17X6:.dbline 84; {.dbline 85; if(BT1_V<2000)lds R24,_BT1_Vlds R25,_BT1_V+1cpi R24,208ldi R30,7cpc R25,R30brsh L19.dbline 86; {discharge_stop();} .dbline 86rcall _discharge_stop.dbline 86L19:.dbline 87; EEPROM_WRITE(0x01F0,BT1_mAh);ldi R24,4ldi R25,0std y+1,R25std y+0,R24ldi R18,<_BT1_mAhldi R19,>_BT1_mAhldi R16,496ldi R17,1rcall _EEPROMWriteBytes.dbline 88; EEPROM_WRITE(0x01F4,BT1_time);ldi R24,4ldi R25,0std y+1,R25std y+0,R24ldi R18,<_BT1_timeldi R19,>_BT1_timeldi R16,500ldi R17,1rcall _EEPROMWriteBytes.dbline 89; sc_eeprom=1250;ldi R24,1250ldi R25,4sts _sc_eeprom+1,R25sts _sc_eeprom,R24.dbline 90; }L17:.dbline 91; if(sc_bt_ctrl==0)lds R2,_sc_bt_ctrllds R3,_sc_bt_ctrl+1tst R2brne L21tst R3brne L21X7:.dbline 92; {.dbline 93; BT1_I_Ctrl();rcall _BT1_I_Ctrl.dbline 94; if((BT1_I>BT1_I_SET+5)||(BT1_I<BT1_I_SET-5))lds R24,_BT1_I_SETlds R25,_BT1_I_SET+1adiw R24,5lds R2,_BT1_Ilds R3,_BT1_I+1cp R24,R2cpc R25,R3brlo L25lds R24,_BT1_I_SETlds R25,_BT1_I_SET+1sbiw R24,5cp R2,R24cpc R3,R25brsh L23L25:.dbline 95; sc_bt_ctrl=2;ldi R24,2ldi R25,0sts _sc_bt_ctrl+1,R25sts _sc_bt_ctrl,R24rjmp L24L23:.dbline 96; else sc_bt_ctrl=48;ldi R24,48ldi R25,0sts _sc_bt_ctrl+1,R25sts _sc_bt_ctrl,R24L24:.dbline 97; }L21:.dbline 98; }L11:.dbline 99; if(sc_bt1_v_temp==0)lds R2,_sc_bt1_v_templds R3,_sc_bt1_v_temp+1tst R2brne L26tst R3brne L26X8:.dbline 100; {bt1_v_temp+=BT1_V;sc_bt1_v_temp=500;}.dbline 100lds R2,_BT1_Vlds R3,_BT1_V+1lds R4,_bt1_v_templds R5,_bt1_v_temp+1add R4,R2adc R5,R3sts _bt1_v_temp+1,R5sts _bt1_v_temp,R4.dbline 100ldi R24,500ldi R25,1sts _sc_bt1_v_temp+1,R25sts _sc_bt1_v_temp,R24.dbline 100L26:.dbline 101lds R2,_sc_bt1_recordlds R3,_sc_bt1_record+1tst R2brne L28tst R3brne L28X9:.dbline 102.dbline 102rcall _bt1_v_record.dbline 102ldi R24,7500ldi R25,29sts _sc_bt1_record+1,R25sts _sc_bt1_record,R24.dbline 102L28:.dbline -2L2:adiw R28,2rcall pop_gset2.dbline 0 ; func endret.dbend.dbfunc e taskmgr _taskmgr fV.even_taskmgr::.dbline 0 ; func endret.dbend.dbfunc e system_clock _system_clock fV.even_system_clock::.dbline 0 ; func endret.dbend.dbfunc e bt1_v_record _bt1_v_record fV.even_bt1_v_record::.dbline 0 ; func endret.dbend.dbfunc e main _main fV.even_main::.dbline 0 ; func endret.dbend.dbfunc e welcome _welcome fV.even_welcome::.dbline 0 ; func endret.dbend.dbfunc e discharge_stop _discharge_stop fV.even_discharge_stop::.dbline 0 ; func endret.dbend.dbfunc e discharge_init _discharge_init fV.even_discharge_init::.dbline 0 ; func endret.dbend.dbfunc e Capacitance_setting _Capacitance_setting fV.even_Capacitance_setting::.dbline 0 ; func endret.dbend.dbfunc e discharge_speed _discharge_speed fV.even_discharge_speed::.dbline 0 ; func endret.dbend.dbfunc e record_setting _record_setting fV.even_record_setting::.dbline 0 ; func endret.dbend.dbfunc e discharge _discharge fV.even_discharge::.dbline 0 ; func endret.dbend.dbfunc e desktop2 _desktop2 fV.even_desktop2::.dbline 0 ; func endret.dbend.dbfunc e desktop1 _desktop1 fV.even_desktop1::.dbline 0 ; func endret.dbend.dbfunc e desktop3 _desktop3 fV.even_desktop3::.dbline 0 ; func endret.dbend.dbfunc e desktop4 _desktop4 fV.even_desktop4::.dbline 0 ; func endret.dbend.dbfunc e BT1_I_Ctrl _BT1_I_Ctrl fV.even_BT1_I_Ctrl::.dbline 0 ; func endret.dbend.dbfunc e timer _timer fV.even_timer::.dbline 0 ; func endret.dbend.area bss(ram, con, rel).dbfile E:\V2.0\main.c_BT1_P::.blkb 2.dbsym e BT1_P _BT1_P i_D882_P::.blkb 2.dbsym e D882_P _D882_P i_mAh::.blkb 2.dbsym e mAh _mAh i_BT1_time::.blkb 4.dbsym e BT1_time _BT1_time l_BT1_mAh::.blkb 4.dbsym e BT1_mAh _BT1_mAh l_PWM::.blkb 2.dbsym e PWM _PWM i_BT1_I_SET::.blkb 2.dbsym e BT1_I_SET _BT1_I_SET i_bt1_v_temp_1::.blkb 2.dbsym e bt1_v_temp_1 _bt1_v_temp_1 i_bt1_v_temp::.blkb 2.dbsym e bt1_v_temp _bt1_v_temp i_BT1_V_num_temp::.blkb 2.dbsym e BT1_V_num_temp _BT1_V_num_temp i_BT1_V_num::.blkb 2.dbsym e BT1_V_num _BT1_V_num i_BT1_T::.blkb 2.dbsym e BT1_T _BT1_T i_BT1_I::.blkb 2.dbsym e BT1_I _BT1_I i_BT1_V::.blkb 2.dbsym e BT1_V _BT1_V i_BT1_state::.blkb 1.dbsym e BT1_state _BT1_state c_sc_bt1_v_temp::.blkb 2.dbsym e sc_bt1_v_temp _sc_bt1_v_temp i_sc_key_delay::.blkb 2.dbsym e sc_key_delay _sc_key_delay i_sc_bt1_record::.blkb 2.dbsym e sc_bt1_record _sc_bt1_record i_sc_lcd_write::.blkb 2.dbsym e sc_lcd_write _sc_lcd_write i_sc_eeprom::.blkb 2.dbsym e sc_eeprom _sc_eeprom i_sc_discharge::.blkb 2.dbsym e sc_discharge _sc_discharge i_sc_bt_ctrl::.blkb 2.dbsym e sc_bt_ctrl _sc_bt_ctrl i_sc_bt1::.blkb 2.dbsym e sc_bt1 _sc_bt1 i_sc_key::.blkb 2.dbsym e sc_key _sc_key i_RunTab_old::.blkb 1.dbsym e RunTab_old _RunTab_old c_keyboard::.blkb 1.dbsym e keyboard _keyboard c.area lit(rom, con, rel)Это блок байтовых данных для сообщений дисплея:Трава, гравий, снег (ТГС)Грязь, колея (ГК)Песок (П)Камни, малый ход (КМХ)Автоматический (А)L129:.byte 'Г,'О,'Т,'О,'В,0L128:.byte 'К,'О,'Н,'Е,'Ц,0L116:.byte 'Т,'Г,'С 0L115:.byte 'Г,'К,0L94:.byte 'П,0L93:.byte 'А,0L92:.byte 'К,'М,'Х,0L91:.byte 'В,'Ы,'К,'Л,0L71:.byte 'D,'i,'s,'c,'h,'a,'r,'g,'e,'r,32,'x,'p,0L70:.byte 'W,'e,'l,'c,'o,'m,'e,0Подпрограмма дисплея;--------------------------------------------------------; подпрограмма написания символов и вывода курсора;--------------------------------------------------------.SYMBOLS ;это название подпрограммы на языке программирования;--------------------------------------------------------; определение выходного порта, назначение рабочих регистров;---------------------------------------------------------------------------------------------------RS REG P3.0E REG P3.4RES REG P3.2CS1 REG P3.3CS2 REG P3.5R_W REG P3.7STP REG P2.0S_S REG P2.

Список литературы

1. Палагута К.А. Лекции по дисциплине «Микропроцессорные СУ ТС», 9 семестр, 2004.
2. Шагурин И.И., Мокрецов М.О. Современные микропроцессоры и микроконтроллеры. Учебное пособие.
3. Соснин Д. А., Яковлев В. Ф. Новейшие автомобильные электронные системы. — М.: СОЛОН- Пресс, 2005. — 240 с.: ил. — (Серия «Библиотека студента»). Учебное пособие для специалистов по ремонту автомобилей, студентов и преподавателей вузов и колледжей.
4. Синельников А. X.Электроника в автомобиле. — 3-е изд., перераб. и доп. — М.: Радио и связь, 1986- - 96 с., ил. - (Массовая радиобиблиотека; Выл. 1084).

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00483
© Рефератбанк, 2002 - 2024