"Some more about 9600bps", by RX3DIN 1995, г.Пущино ------------------------------------------------------------------------ макс. скорость на полудуплексном канале | timer's | тактовая частота TNC и ISA cards | немного о радиостанции ------------------------------------------------------------------------ Приближенный расчет "реальной" скорости - throughput Подсчет скорости при передаче 256 байтного (I) пакета. Его можно считать принятым после получения подтверждения (rr) - Acknowledge (Ack). Пусть длина L(I)= 256, такой пакет содержит примерно 230 байт данных, (остальное служебные поля) длина L(I) = 256 длина L(I)data = 230 длина L(rr)Ack = 16 Tb = 8/9600 = 0.00083сек время на передачу байта T(I) = Tb*256 - время (I) пакета Tack = Tb*16 - время Ack (rr) пакета Txd - Txdelay Txd + T(I) + Txd + Tack - время на передачу (I) пакета и получения подтверждения - T(I+rr) T(I+rr) = 2Txd + 0.2133 + 0.0133 - общее время на передачу и подтверждение поскольку за это время реально передано 230 байт, то "реальная" скорость: throughput = 230/T(I+rr) для разных Txd получаем throughput: Txd mc - byte 10 - 932 20 - 862 30 - 802 40 - 750 100 - 539 200 - 367 300 - 278 это расчет при maxfr=1 для канала где нет ошибок, нет эффекта Hidden Transmition (далее HTS) присущего AX25 c его CSMA методом доступа на частоту для передачи и при наличии двух работающих станций - по сути "точка-точка". К Txd вообще то еще необходимо добавить Dwait, но поскольку в последнее время чаще используют метод Slottime/Persist, то прибавить как min Slottime. Slottime обычно ставят = Txd, а Persist для канала "точка-точка" = 255. Когда несколько N станций, Persist = 255*(1/N) или несколько больше для хорошего канала без HTS, Persist = 256/(N-1). Persist < 255 уменьшает "агрессивность" станции, но позволяет избежать коллизий, повторных передач, в случае попытки несколько станций начать передачу одновременно. Как видно Txd оказывается очень важной величиной. В реальной ситуации при очень хорошей Txd = 20-30mc throughput на канале хорошего качества = 400-600 байт/с. 200-350 байт/с с voice radio, за счет большего Txd и худшего BER см. ниже. (Для TNC обычно надо установить Txd=2, чтобы получить реальное значение 20 мс). Несколько по другому происходит при работе c TCP/IP на UI AX25 (если не используется vc - Virtual circuit mode. В vc mode контроль за ошибками осуществляется на L2 AX25, этот режим надо использовать на IP линиях с низким качеством канала). На качественном канале, при не большом количестве Users, (лучше в схеме point-to-point) используют UI пакеты AX25 без контроля на АХ25. В этом случае контроль за ошибками возлагается на L3/L4 TCP/IP. Макс. размер фрейма 2048 байт, одновременно можно передать 4 таких фрейма если установить TCP window = 8192. Эффективная скорость повышается на _действительно качественном_ канале за счет передачи большего об'ема информации за одно включение на передачу. PE1CHL разработал спецификацию modulo-128, она позволяет повысить эффективность полудуплексных каналов, за счет увеличения времени передачи - maxrfame > 7. Rob считает, что полудуплексный канал можно считать эффективным когда время задержки на переключение RX/TX ( выход передатчика на режим мощности, восстановление приемника, (см. ниже), синхронизация модема, tail в конце передачи для SCC chip и очистки скремблера. T_задержк_min ~= Txd+Slottime+tail) не превышает 10% от времени передачи. Эта схема по утверждению автора оказывается особенно эффективна на point-to-point качественных NetRom линках, где зачастую накапливается множество коротких пакетов - user-data, подтверждений транспортного уровня и пакетов установления связи на транспортном уровне. timer's Зачастую бывает трудно перебороть себя и установить на первый взгляд менее эффективные значения timer-ов и меньшее значение maxframe. Как ни странно на первый взгляд, но более эффективным на сильно занятом канале является maxframe = 1. При установке maxframe = 7, даже при одной ошибке необходимо заново передать все 7 frame. Существуют прошивки позволяющие избежать повторной передачи всех фреймов, при сбое снова передается только тот frame который не был принят. Прошивки должны стоять на обеих станциях между которыми идет радиообмен. Их можно найти здесь или здесь. На качественном канале точка-точка надо устанавливать maxframe = 5-7, на занятом 3-4, и на сильно занятом 4-6 станций, при наличии эффекта HTS maxframe = 1 ! Это также можно подсчитать, но это уже сделал KA9Q Phil Karn, а ему можно верить :-) Увеличивайте также Frack (T1) от привычного значения = 1, на занятых каналах или при наличии Digi до 3-5 и >. Подбирать resptime (T2) при приеме больших файлов. Hidden Transmition (HTS) - очень неприятный для AX25 эффект, когда например две станции работающие с одним и тем же BBS не слышат ( или плохо слышат) друг друга. Это зачастую бывает, при использовании плохих антенн, неподходящего рельефа или DX. Например я работаю с MSK8 или MSK12 (бывало такое при проходе), но кроме Node меня никто в Москве не слышит. Получается что чей то TNC начинает передавать в то время, когда я передаю что то для Node. Этот эффект очень сильно снижает пропускную способность, зачастую делая работу невозможной. С HTS нужно бороться ! Как правило BackBone (по возможности скоростные) линии между Node, BBS делают на отдельном канале свободном от Users и HTS. Это более дорогое, но зачастую оправданное (при высокой активности пакетчиков) решение. Кроме этого без внесения дополнений в спецификацию АХ25, а лишь изменением firmware/software для "пакета" был адаптирован протокол DAMA, использующийся при работе через спутники. Damand Assigned Multiple Access подразумевает предоставление канала по требованию, центральная станция по очереди, при необходимости меняя приоритет предоставляет возможность начать передачу. Это несколько снижает эффективность канала заведомо свободного от HTS, но если это был канал с наличием HTS и временами практически не работоспособный из за этого при наличии несколько одновременно работающих пользователей, то теперь HTS не проблема ! В настоящее время очень многие программы и прошивки для TNC поддерживают DAMA. Обычно же используется Slottime/Persist - метод для уменьшения коллизий, _одновременного начала_ передачи несколькими станциями. После того как TNC обнаружил, что канал свободен, делается задержка = Slottime, потом TNC генерит случайное число в диапазоне 1-255 и если это число < Persist, начинается передача. Если нет, снова задержка Slottime и опять генерится случайное число и сравнивается с Persist. Для каналов "точка-точка" - мин. Slottime и Max Persist, повышают эффективность. В др. случаях, при нескольких станциях см. выше. При использовании DAMA передача начнется только в том случае, когда slave станция получит пакет разрешения от master станции. Кроме DAMA и обычных Node (используемых в качестве связующих звеньев пакетной сети) все чаще используют также Real Time Bit Repeater - такие репитеры реализованы в TAPR TNC, WA4DSY RF modem и в G6WPJ/G8STW AX384/576 TNC. Они несколько усложняют схему modema, но делают работу на 9600bps более приятной и продуктивной. Немного подробней o Real time bit repeater смотрите здесь. Тактовая частота TNC и ISA cards TNC преобразует HDLC пакеты ("канального" L2 уровня AX25) в асинхронный формат и передает компьютеру. "Эфир" <-> HDLC <-> SIO <-> CPU обработка <-> SIO <-> асинхр/RS232 для этого необходим TNC с тактовой частотой 10Mhz, как _минимум_ рекомендуется TNC с 4.9Mhz Clk. Использование TNC с более высокой частотой позволяет повысить реальную скорость передачи информации. Как компромисс можно использовать TNC на базе 6Mhz CPU/SIO by SGS Thomson, Z84C00BB6/Z80 CPU CMOS, Z84C40BB6/Z80 SIO/0 CMOS. Практически все такие CPU/SIO отлично работают на тактовой частоте 10Mhz. (SIO выполняет: Flag detection, bit stuffing and CRC generation and detection). Наиболее эффективны для высоких скоростей (19200 и больше ) оказываются схемы с аппаратной обработкой HDLC на Z8530. Существуют TNC, ISA card (шина IBM PC) использующие SCC Z8530. SCC PA0HZP, Baycom USCC card или более эффективные для скоростей 56K и > - PI2 Card с DMA. Появились более современные CMOS Z85C30. А также ESCC Z85130/85230 которые могут работать в fullduplex без внешнего деления на 32, а главное что ESCC имеют FIFO - 4 TX (было 1), 8 RX (было 3). ESCC более дорогие и их использование не всегда оправдано. SCC в дополнение к функциям SIO делает: NRZI coding, baud rate generation, bit rate clock generator for receive and transmit data to synchronise to and receive clock recovery. Немного о радиостанции Несколько полезных советов: Добиваться как можно большего отношения S/N (мощность, антенны) не забывая что для нас очень важно Txd. Из известных конфигураций наиболее интересна на мой взгляд TEKK KS900/960/1000L Data Radio + усилитель (с pin диодами в TX/RX цепи) Mirade D15, при необходимости. (При использовании других усилителей придется увеличивать TxD). Кроме этого KS-960, (выпуска после 1994г, их можно отличить по наличию провода идущего со стороны пайки - это доработка TEKK, сигнал модуляции обходит одну микросхему модулятора и аудио фильтры) можно очень просто модифицировать для использования на 19200bps простой заменой фильтров: LF-H20S на Murata CFW455B или даже лучше CFW455C, пойдут Toko LF-H25S или LF-H30S. Фильтр первой ПЧ 21.4MHz 21M15 заменить на 21M30. Если не удалось найти 21M30 можно при ухудшениях качества приемника поставить вместо фильтра конденсатор - 1nF. Остальные известные варианты D4-10 data radio или Azden PCS-9600D оказываются дороже. Azden обладает очень хорошими характеристиками (в одном ряду с IC-820H и KS900L/KS960L). 440Mhz, 35W. Voice/Data - в отличии от Data радио, PCS-9600D может быть использована также как обычная р/ст для передачи голоса. Хочется особо отметить Kantronics D4-10, которая в отличии от других р/ст может быть использована без модема. Радиостанция имеет TTL I/O порт для непосредственного подключения к TNC. TxD NRZI или NRZ сигнал с TNC проходит через цепь несколько ограничивающую спектр сигнала, но метод формирования сигнала конечно намного проще чем в G3RUH модеме. Спектр сигнала (~70КГц) не превышает лимит 100KГц для диапазона 430MГц. RxD сигнал с радиостанции поступает с data-slicer, который является основной особенностью схемы приемника D4-10. Использование "raw-FSK" сигнала без модема, который позволяет сформировать более подходящий сигнал , а главное из-за отсутствия скремблера (труднее выделить RxClock), вероятно несколько возрастает количество ошибок. Кроме этого на 19200bps необходим TNC с тактовой частотой как минимум 10Mhz или "любительские PC ISA Board". Voice radio, хотя многие из них и работоспособны на 9600, не дают возможности получить max скорость. Даже новые голосовые "9600 Ready" р/ст с специальным разъемом на 9600 имеют те же проблемы, медленное время восстановления приемника, следовательно большое TxD. Кроме этого не лучшие АЧХ/ФЧХ, в итоге большое BER и низкая эффективность. Основная проблема в том, что в этих р/ст как правило страдает "качество передачи" [1]. И некоторые оказываются вообще непригодными для 9600. НЧ тракт должен быть линейным от DC то 7.2Khz, речь о АЧХ и ФЧХ. ФЧХ (неравномерность задержки) оказывается особенно неравномерной на НЧ у radio с PLL. Уменьшение частоты pll приводит к увеличению шума, увеличению времени восстановления приемника и в результате к потере эффективности. PLL <=30Hz низкие частоты проходят, но медленное восстановление. PLL >30Hz низкие частоты искажаются или вообще не проходят. Voice Radio имеют Bit Errors Rate - BER (ош./кол-во передан. бит) = N*10 ^ -3. При высоком S/N N*10 ^ -4. Data Radio имеют на порядок лучшее BER = N * 10 ^ -4 (-5 при высоком S/N) Полоса IF 15-20Khz с как можно более линейными значениями АЧХ и ФЧХ. В ROM есть несколько прошивок которые позволяют на передающей стороне преднамеренно внести искажения в передаваемый сигнал, чтобы компенсировать (заранее известные) искажения сигнала на приемной стороне в тракте приемника. Оптимально необходимо знать данные для расчета формы сигнала, есть методики. Зачастую всегда удается найти более подходящую прошивку из имеющихся 16 (или >) в ROM. Вы подбираете на _своей стороне_ прошивку для приемника на _стороне_BBS_ _или_User ! Бывает трудно подобрать оптимальную прошивку на BBS, так чтобы она была наиболее подходящая для Users, имеющих различные по характеристикам приемники. Это один из недостатков модуляции G3RUH. Сейчас применяют GMSK модемы совместимые на 9600 с G3RUH которые не имеют этого недостатка: VFast28.8, KPC-9612, AX384/576 TNC. Иногда полезно несколько увеличить девиацию с 3 (принятого для 9600) до 4-4.5; при этом уменьшается BER, но увеличивается полоса, надо быть уверенным, что IF пропустит сигнал и не будет помех в соседний канал. Приближенно полосу можно подсчитать как : Fmax * 2 + Dev * 2; для 9600 --> 4.8Khz*2 + 3*2 = 15.6Khz, реально для "raised cosine" PAM сигнала используемого в G3RUH, чуть меньше - ~12Khz. Необходимо быть уверенным, что частоты вашей радиостанции и вашего корреспондента совпадают. Возможен сдвиг не > 1-2Khz. Для радио с PLL важно время восстановления приемника. Когда оно велико вы нормально принимаете UI пакеты не требующие подтверждения, даже при малом значении Txd на удаленном передатчике. Но в connected mode, когда вы после передачи переходите на прием оказывается, что данное значение Txd на удаленном передатчике мало и необходимо его увеличить. Вот почему метод установки мин. значения Txd (вашим корреспондентом) по приему (вами) UI (beacon или др. UI не требующие подтверждения - ваш приемник всегда на приеме), не совсем корректен, хотя очень удобен и прост. Величина TxD устанавливая в TNC - для самых хороших Data Radio - 5mc, чаще 10 -30 мс, для voice radio 200 - самые лучшие модели, и обычно 300 и даже несколько больше. Даже при наличии очень хорошей data радиостанции нельзя сильно уменьшать Txd. TxD ограничивается еще самим модемом. В нем есть цифровая PLL (на ROM и up/down счетчик или GALs) для Clock recover восстановления. Время необходимое на захват зависит от S/N - 50bit, до 200bit при плохом S/N, что соответствует на 9600 5мс и 20 мс. Обычно схема DPLL должна успевать срабатывать во время TxD когда передается "преамбола" - flags или 01010101 в зависимости от sowtware/firmware TNC, т.е. до начала реальной передачи данных. Современные модемы обеспечивают более быструю "синхронизацию", например GMSK модем на Single Chip FX589 делает это за 32bit - 3мс на 9600 в slow mode, и за 16bit в fast mode, но опять не лучше ! В fast mode обычно используют радиостанции которые имеют выход RSSI - Receive Signal Strenght Indicator. Это не медленный 200mc выход squenlch или mute, это _специальный_ выход на многих Chips FM demodulat'оров. Если Вы все же решили купить новую 9600 Packet Ready р/ст, то по результатам тестов [2] их можно поставить в следующем порядке: Двух диапазонные FT8500, TM733, C5718, DR610. Одно диапазонные TM251, C1208. На таких р/ст невозможно построить пакетную сеть с "производительностью" соответствующей скорости 9600bsp. По результатам измерений QST [3] Kenwood TM-255A несколько лучше перечисленных выше радиостанций. Все они сильно уступают Azden PCS-9600D, TEKK KS900/960/1000, IC820. AEA в июне '96 сообщила о выпуске Integrated Data Radio - 9600bps TNC и 5W (вероятно TEKK) Data Radio в одном корпусе, цена около 500-600$. Еще ранее Paccomm стал предлагать похожее устройство IPR-NB96 за 500$. О модификациях более старых р/ст можно найти информацию на FTP серверах в Internet или на WWW, в пакете. На 9600 могут быть использованы следующие Voice радиостанции (это конечно не весь список): Motorolla - Maxar, Mitrek. И более распространенные: ICOM - 22, 25, 38, 228, 271, 290, 471 Kenwood - TR:7500, 7700; TM:211, 212, 221, 231, 431; TS: 700, 770 Standard - C58, 140 Yeasu - FT212, 221, 230 [1] См. статьи о data/voice Radio в QST May, '95 и QEX Mar, '95 [2] QST Nov 1995 [3] QST June 1995 ------------------------------------------------------------------------ Back