`Volkswagen Group of America, Inc., Petitioner
`1
`
`
`
`tHCtaP3U
`
`Jan. 16, 2001
`
`Sheet 1 of 10
`
`US 6,175,789 B1
`
`$v<zzEz<onx\
`
`vml.81ow
`
`i
`
`oN
`
`4!\
`
`a:xo<m
`
`>mm:L<m
`
`mm
`
`Eta‘m_._o__._m>.mm
`
`mm0
`
`\ .
`
`§\
`‘TR
`
`\
`
`\ <
`
`1-
`
`V
`
`\
`
`\
`
`mmon
`
`O_._.wOZ0<_DEmsomm
`
`
`
`
`
` 8 moE~m:z_mmomzmmIE
`
`2
`
`
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 2 of 10
`
`US 6,175,789 B1
`
`E
`
`mm
`
`mm
`
`ZO_._.<O_><Z
`
`
`
`n_\_s_m5>w
`
`>.:m:omm
`
`
`
`n_\_s_m+m>w
`
`
`
`_>m_»m>wom_O
`
`us
`
`NNI\
`
`N»
`
`mo
`
`8
`
`E
`
`
`
`m_._:n_o_>_~_m5n_s_oo
`
`»mzmm»z_
`
`
`
`v_z_._mwm.m_m_>>
`
`m5Imm:
`
`
`
`m::n_o_>_Eonaam
`
`3
`
`8
`
`mm
`
`_>_ON_-D0
`
`n_\_mm_oz<:o
`
`
`
`..._\_mm_z3._.>.r
`
`.v_o:m>o_,
`
`.om<om>mv_
`
`mm:os_
`
`E
`
`
`
`m_.5oo_>_m:<._n_mo<n_
`
`3
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 3 of 10
`
`US 6,175,789 B1
`
`
`
`m_.5n_o_>_m:<._nm_o<n_
`
`
`
`m_._:oo_>_Eonasm
`
`
`
`m5oo_>_mmSn_s_oo
`
`No
`
`E
`
`mm
`
`E
`
`om
`
`NN_.
`
`om.
`
`n_<m>mx
`
`><#_m_o
`
`<om_
`
`omooo
`
`NE2:
`
`
`
`omoooEwn___._omam
`
`mm
`
`_>_u_\_>_<
`
`8
`
`
`
`
`
`mmzah._<zo_wo_n5<
`
`mmjomtzoo
`<O>..=_mm:
`
`
`
`m::n_o_>_mommm_oomn_
`
`mm
`
`vN_,
`
`mm_>_momz<m._.“E
`
`A._<20_._.n_OV
`
`<20»m<u_
`
`>mosm__>_
`
`
`
`:2:o_oo._
`
`
`
`._._ZDO_OO|_
`
`mm.
`
`of
`
`mi
`
`\..m_.
`
`mm:
`
`mm.
`
`on;
`
`>:m_:omw
`
`ZO_.r<O_:_n_n_<
`
`omo
`
`ZO_._.<0_:_n_n_<
`
`ZO_._.<O_><Z
`
`ZO_._.<O_._n_n.<
`
`mmm>_mn_
`
`920E<s_w
`
`n_\_
`
`&_E<o-on_
`
`n3
`
`v?
`
`E8w1.5%
`
`8
`
`5
`V
`
`N?
`
`4
`
`
`
`
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 4 of 10
`
`US 6,175,789 B1
`
`66
`
`CLK
`
`_ 150
`- DD DATA
`/
`—> D
`Q
`
`152
`
`
`LOGIC UNIT Q
`32
`/
`>
`
`
`
`‘
`,—» D
`
`— Q
`
`32
`Q >
`
`154
`
`D
`
`32
`/
`
`0
`
`155
`
`148
`
`
`
`VGA
`CONTROLLER
`
`162
`
`SERIAL
`DEVICES WITH
`DMA
`
`166
`
`
`
`SERIAL
`DEVICES
`
`WITHOUT DMA
`
`
`
`
`
`
`~—~
`
`164
`
`i
`PING/PONG DMA
`CIRCUITS
`
`D
`<1
`
`D
`D
`
`32
`-«TR»
`
`32
`
`P
`
`32
`4
`
`,
`
`REGISTER
`DECODER
`
`D ,
`4
`
`
`
`32
`
`4
`
`O
`
`32
`
`>
`
`—\
`32
`
`>
`
`142 *1
`32
`
`140 —/'
`
`.
`v
`V
`V
`CNTL ADD DATA
`
`<
`< ‘
`
`16
`/
`
`32
`/
`
`20
`/
`
`170
`
`IDE Pom
`
`110
`
`
`
`FAST DATA
`MEMORY
`
`5
`
`
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 5 of 10
`
`US 6,175,789 B1
`
`CNTL ADD DATA
`
`140x,
`144_
`146'\ D
`
`142 —-_\
`
`32
`/
`
`D 32
`O /
`
`>
`
`
`BUS REQ
`
`BUS GRANT
`206
`
`PING/PoNG START ADDRESS
`
`1
`
`7
`
`'
`
`8
`
`
`
`>
`
`0
`
`8
`
`8
`
`»
`
`'
`
`‘
`.
`
`v
`
`D19 ..... .. D10
`+
`V
`
`A19 ....... A10
`
`» D /
`
`O
`
`208
`’ [>
`0
`LOWER
`
`COUNT
`ADDRESS
`
`COUNTER
`
`A9 ..... .. A2
`
`
`
`CONTROL
`REGISTER
`
`
`
`
`
`ONTROL REGISTER
`& STATUS
`REGISTERS
`
`
`
`
`
`6
`
`
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 6 of 10
`
`US 6,175,789 B1
`
`102
`
`90
`
`CODEC
`
`I23
`
`
`
`AM/FM TUNER
`
`MODULE
`
`PROCESSOR
`
`78
`
`CD-ROM
`
`PARALLEL BUS
`
`AUDIO SIGNAL
`
`I23
`
`I23
`
`110
`
`FAST DATA
`
`MEMORY
`
`7
`
`
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 7 of 10
`
`US 6,175,789 B1
`
`FCLK
`
`FSYNC
`
`f 220 90
`
`
`
`' 234
`
`
`
` MCLK
`11.2 MHz
`
`DIVIDE BY N
`
`COUNTER
`
`DIVIDE BY 2
`
`COUNTER
`
`DIVIDE BY 480
`COUNTER
`
`2
`I C CLOCK
`
`DIVIDE BY N
`COUNTER
`
`BAUD RATES
`
`8
`
`
`
`tnCtaP3U
`
`aJ
`
`M
`
`10
`
`whS
`
`£10
`
`1B9879571,6SU
`
`n.Eova
`
`m.025,
`
`EILE
`
`v_._o
`
`mSm
`
`mm__>_<E
`
`9
`
`
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 9 of 10
`
`US 6,175,789 B1
`
`mmSn_s_oo
`
`m.5oo_>_
`
`we
`
`
`
`mSn_o_>_Eon_n5w
`
`mE:nm_o<u_
`
`m_.5n_o_>_
`
`8
`
`
`
`mo»<.5ommm_m_>>On_
`
`mmo<z<_>_DZ<
`
`Sm
`
`
`won4/EmEm__
`_.III|IIIIIIII14
`
`AA_
`
`mm
`
`mm
`
`m._o_:m>
`
`>mmE<m
`
`n_3_o<m
`
`>mmC<m
`
`10
`
`
`
`
`
`
`
`11
`
`U.S. Patent
`
`Jan. 16, 2001
`
`Sheet 10 of 10
`
`US 6,175,789 B1
`
`N0I
`
`D
`
`/-500
`
`11
`
`
`
`US 6,175,789 B1
`
`1
`VEHICLE COMPUTER SYSTEM WITH
`OPEN PLATFORM ARCHITECTURE
`
`REFERENCE TO RELATED APPLICATIONS
`
`This is a continuation of U.S. patent application Ser. No.
`08/668,781, filed Jun. 24, 1996, which issued as U.S. Pat.
`No. 6,009,363, on Dec. 28, 1999. Patent
`’363 is a
`continuation-in-part of U.S. patent application Ser. No.
`08/564,586, filed Nov. 29, 1995, which issued as U.S. Pat.
`No. 5,794,164, on Aug. 11, 1998.
`
`TECHNICAL FIELD
`
`This invention relates to computer systems for vehicles.
`
`BACKGROUND
`
`Modern vehicles are typically equipped with several
`independent electronic systems. For instance, most modern
`vehicles have a sound system and a security system. The
`sound system usually consists of an AM/FM radio, a cassette
`or CD (compact disk) player, an equalizer/amplifier, and
`speakers. The radio and player are arranged in a metal casing
`or housing that is mounted in a dashboard of the vehicle. The
`housing has a standardized size, often expressed in terms of
`DINs (Deutsche Industry Normen), to ensure that the sound
`system is compatible with and can be retrofit into most
`vehicle dashboards.
`
`The security system is entirely separate from the sound
`system. The security system generally consists of security
`sensors placed throughout
`the vehicle, and a central
`application-specific integrated circuit (ASIC) to monitor the
`sensors and determine whether security is being jeopardized.
`Security System also controls actuators to lock/unlock doors
`or windows, and an alarm or siren.
`Most late model vehicles are also constructed with a
`
`diagnostic system that analyzes performance of the vehicle’s
`engine, transmission and fuel system, and other components
`(1996 or later for OBD II, 1993 or later for OBD I). The
`diagnostic system can be coupled to an external computer to
`download or monitor diagnostic information that is useful to
`a vehicle mechanic during servicing of the vehicle.
`Additionally, the diagnostic system might include dashboard
`displays that inform the driver of various operating condi-
`tions.
`
`In some recent models, vehicles are being equipped with
`a navigation system that incorporates a global positioning
`system (GPS) receiver. The GPS receiver has an antenna to
`receive signals from a satellite network. The vehicle navi-
`gation system uses the satellite positioning signals to com-
`pute coordinates that locate the vehicle over the surface of
`the earth with regard to longitude, latitude, and altitude.
`Also, with the appropriate map software,
`the vehicle’s
`location can then be shown on a map.
`Cellular communications systems have also been added to
`vehicles. These communications systems enable the vehicle
`driver or occupant to transact telephone calls from their
`vehicle. Some of the more sophisticated systems are voice
`controlled which permit the driver to initiate or receive calls
`while traveling without removing a hand from the driving
`wheel, or diverting his/her eyes from the operation of the
`vehicle.
`
`While these various electronics systems have proven
`useful
`to vehicle users,
`there is a drawback in that
`the
`systems are unrelated and incompatible. Each system
`employs separate proprietary dedicated processors or ASICs
`(application specific integrated circuits) which execute
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`incompatible proprietary software. If a vehicle owner would
`like to add a security system to his/her vehicle, the owner
`must purchase an entire security system from one of the
`vendors and have it customarily installed. There is no way
`to add security functionality to an existing electronics
`system, such as the navigation system or the sound system.
`SUMMARY
`
`This invention concerns a vehicle computer system that is
`capable of integrating these diverse and separate systems as
`well as offering a general purpose computing platform that
`allows for easy expandability. The vehicle computer system
`has a housing sized to be mounted in a vehicle dashboard or
`other convenient location. This system provides an open
`hardware architecture and supports an open platform oper-
`ating system. The open platform operating system supports
`multiple different applications that can be supplied by a
`software vendor. For instance,
`the operating system can
`support applications pertaining to entertainment, navigation,
`communications, security, diagnostics, and others. In the
`preferred implementation, the operating system is a multi-
`tasking operating system capable of concurrently running
`multiple applications. The computer has one or more storage
`devices (e.g., hard disk drive, CD drive, floppy disk drive,
`cassette player, or smart card reader) which permits the user
`to download programs from a storage medium (e.g., hard
`disk, CD, diskette, or cassette) to the computer. Also, the
`user can read or write data to writeable medium (e.g., hard
`disk, diskette, cassette, or smart card). In this manner, the
`vehicle owner can easily add new systems to his/her vehicle
`by installing additional programs.
`In the described implementation, the vehicle computer
`system has three modules: a support module, a faceplate
`module, and a computer module. The support module is
`formed as part of a stationary base unit of the housing that
`resides in the vehicle dashboard or other location. It has its
`
`own logic unit which can be implemented in a field pro-
`grammable gate array (FPGA), application specific inte-
`grated circuit (ASIC), customized processor, or the like. The
`support module also has an audio signal processor, such as
`a digital signal processor (DSP), which performs the signal
`processing for audio and video data. One could combine this
`DSP into the ASIC if desired.
`
`The faceplate module is detachably connected to the
`support module. The faceplate module has a logic unit of its
`own to control an RF transceiver such as a Cell phone, a
`two-way pager, or a point-to-point spread spectrum
`transceiver, a display, a keypad, and a CODEC. The face-
`plate and support modules are connected using a high speed
`serial connection.
`
`The computer module can be connected to or removed
`from the support module. The computer module and support
`module are interfaced using a multi-bit bus, such as a PCI
`bus. The computer module has a processor and runs an open
`platform operating system. Multiple vehicle-related appli-
`cations execute on the operating system to control operation
`of components in the vehicle. In addition,
`the computer
`module may execute non-vehicle-related applications con-
`currently with the vehicle-related applications.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The same reference numerals are used throughout the
`drawings to reference like components and features.
`FIG. 1 is a diagrammatic illustration of a vehicle com-
`puter system.
`FIG. 2 is a diagrammatic illustration of the vehicle
`computer system interfaced with multiple external periph-
`eral devices.
`
`12
`
`
`
`US 6,175,789 B1
`
`3
`FIG. 3 is a block diagram of the vehicle computer system
`according to one implementation having a faceplate module,
`a support module, and a computer module.
`FIG. 4 is a block diagram of an interface and internal bus
`structure of the support module. FIG. 4 shows the use of a
`fast data memory as a high speed data communications
`buffer.
`
`FIG. 5 is a block diagram of a memory access circuit
`which maps data from peripheral devices into storage loca-
`tions within the fast data memory.
`FIG. 6 is a block diagram of the support module which is
`used to illustrate audio data exchange among multiple serial
`devices through the fast data memory.
`FIG. 7 is a functional block diagram of a master clock
`generating unit which produces a master audio clock signal
`used throughout the vehicle computer system.
`FIG. 8 is a timing diagram illustrating a serial bit stream
`used to communicate data between the support and faceplate
`modules.
`
`FIG. 9 is a block diagram of a power system employed by
`the vehicle computer system.
`FIG. 10 is a diagrammatic illustration of the vehicle
`computer system according to another embodiment having a
`centralized server computing unit and one or more client
`computing units distributed on a data network in a vehicle.
`
`DETAILED DESCRIPTION
`
`FIG. 1 shows a vehicle computer system 20 according to
`one implementation of this invention. Vehicle computer
`system 20 has a centralized computer 22 coupled to various
`external peripheral devices, including a monitor 24, security
`sensors 26, a vehicle diagnostic interface 28, speakers 30, a
`vehicle battery 32, a backup battery 33, and antenna(s) 34.
`The computer 22 is assembled in a housing 36 that is sized
`to be mounted in a vehicle dashboard, similar to a conven-
`tional automobile stereo. Preferably, the housing 36 has a
`form factor of a single DIN (Deutsche Industry Normen).
`But, it possibly could be housed in a 2 DIN unit or other
`special form factor for an OEM.
`The computer 22 runs an open platform operating system
`which supports multiple applications. Using an open plat-
`form operating system and an open computer system
`architecture, various software applications and hardware
`peripherals can be produced by independent vendors and
`subsequently installed by the vehicle user after purchase of
`the vehicle. This is advantageous in that the software appli-
`cations do not need to be specially configured for uniquely
`designed embedded systems. The open hardware architec-
`ture preferably runs a multitasking operating system that
`employs a graphical user interface. One preferred operating
`system is a Windows® brand operating system sold by
`Microsoft Corporation, such as Windows 95® or Windows
`NT® or other derivative versions of Windows®. A multi-
`
`tasking operating system allows simultaneous execution of
`multiple applications.
`The computer 22 includes at least one storage drive which
`permits the vehicle user to download programs and data
`from storage medium. In the illustrated implementation, the
`computer 22 has a CD ROM drive 38 which reads
`application-related CDs, as well as musical, video, game, or
`other types of entertainment CDs. In this manner, the CD
`ROM drive 38 performs a dual role of storage drive and
`entertainment player. The computer 22 has an optional 3.5“
`floppy diskette drive 40, a smart card reader 42, and dual
`PCMCIA card sockets 44 which accept PCMCIA card types
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`I, II and III. Two types I or II cards can be simultaneously
`used, but only one card if a type III can be used. Hereinafter,
`the acronym “PC-Card” will be used in place of the acronym
`“PCMCIA.” Also, a hard disk drive (not shown) can be
`included on the computer 22 for storing both application
`programs and user data. A DVD (digital video disk) player
`may also be included in the computer 22.
`The storage drives are mounted in a base unit 46 of
`housing 36. The base unit 46 is constructed and sized to be
`mounted in the dashboard. Optionally, this base unit may be
`removable in the same fashion as a laptop computer and its
`associated docking station. This high end option allows the
`user to take his vehicle computer to his home or office to
`serve as his portable PC. The housing 36 also has a detach-
`able faceplate 48 which is pivotally mounted to the front of
`the base unit 46. The faceplate can be rotated to permit easy
`and convenient access to the storage drives.
`The computer 22 has a keypad 52 and a display 54 on the
`faceplate 48. The operating system executing on the com-
`puter 22 controls the faceplate peripheral, which through the
`faceplate processor, can control the faceplate keys 52 and the
`faceplate display 54 as peripheral devices when the faceplate
`is attached to the base unit. Additionally, the computer 22
`has a voice recognition device to permit the user to verbally
`enter commands in a hands-free, eyes-free environment.
`These voice commands can be used for controlling most
`operating modes of the vehicle computing platform. The
`computer 22 is also equipped with an IrDA (infrared devel-
`opers association) transceiver port 56 mounted on the face-
`plate 48 to transmit and receive data and programs using
`infrared signals. The entire faceplate unit 48 behaves as a
`multifunction peripheral to the computing platform.
`To load an application or data onto the computer 22, the
`vehicle user inserts a CD or other media (if the application
`is not already contained on the hard disk) into the appro-
`priate drive and the operating system downloads the appli-
`cation or data therefrom. The installation process can be
`automatically handled by the operating system, or with the
`assistance of commands input from the user in the form of
`keyed sequences on the keypad 52 or verbal instructions
`using the voice recognition device. Another technique to
`load data or applications or transfer data with other com-
`puting devices is through the use of the IrDA transceiver port
`56, or the wireless Internet link 76.
`The computer 22 can output visual data to the LCD 54 at
`the faceplate, or to the monitor 24. The display 54 is
`preferably a back lit LCD. The monitor 24 is preferably a
`small flat panel display (e.g., 6.4“ screen) that is movably
`mounted on a stand or yoke and remotely located from the
`computer. The monitor 24 is fully adjustable to different
`viewing positions that can be seen by the driver or other
`passengers in the vehicle. The type of data displayed on the
`monitor can range widely from word instructions concerning
`the vehicle’s performance, to diagrammatic directions used
`by the navigation system, to video movies for in-car enter-
`tainment. The monitor 24 is equipped with an automatic
`override switch 58 which automatically disables the display
`of any non-driving related data when positioned to be
`viewed by the driver. When facing the driver, only infor-
`mation supportive and helpful to driving (e.g., diagnostics,
`navigation directions) is displayed on the monitor, while
`distracting information (e.g., video movies, games)
`is
`blocked from display. In one implementation, the switch is
`an electrical cylindrical switch which closes when the dis-
`play is capable of being viewed by the driver; thus, the
`software can sense the display position and only allow
`permitted information to be displayed.
`
`13
`
`
`
`US 6,175,789 B1
`
`5
`In general, the vehicle computer system 20 can be used to
`integrate multiple vehicle-related systems onto one open
`platform hardware and software architecture. For instance,
`the vehicle computer system 20 can serve as a multimedia
`entertainment system, a navigation system, a communica-
`tions system, a security system, and a diagnostics system.
`Moreover, the vehicle computer system 20 provides addi-
`tional functionality traditionally associated with desk-top
`and laptop personal computers. For instance, vehicle com-
`puter system 20 can support word processing applications,
`spreadsheet applications, database applications, and
`appointment/schedule applications. Furthermore,
`the
`vehicle computer system 20 can be configured to operate as
`a server to other computing units in the vehicle to distribute
`games, video movies, and the like to passengers.
`FIG. 2 shows the computer 22 according to one imple-
`mentation of the invention. Computer 22 has three primary
`modules: a faceplate module 60, a support module 62, and
`a computer module 64. The computer module 64 is opera-
`tively connected to the support module 62 via a multi-bit bus
`66. In the preferred implementation, the multi-bit bus is a
`PCI (Peripheral Component Interconnect) bus. The support
`module 62 and faceplate module 60 are interconnected via
`a high speed serial interface 68 which supports high speed,
`serial data communication. A preferred serial transmission
`scheme is described below in more detail with reference to
`FIG. 8.
`
`In FIG. 2, the support module 62 is also connected to a
`universal serial bus (USB) hub 70 via a multi-bit connector
`72 (e.g., 8 bits). The USB hub 70 provides connections to
`many peripheral devices (e.g., 128 devices). Example
`peripheral devices include the OBD (On Board Diagnostic)
`system 28, the security system 26, navigation system 74, a
`wireless link 76 to the Internet, a CD-ROM changer 78, a TV
`tuner 80, and user I/O devices such as a joystick, keyboard
`or a mouse 82. This USB hub could be separate as shown in
`FIG. 2 or it could be integrated into one or more of the USB
`peripherals.
`FIG. 3 shows the three modules of the vehicle computer
`22 in more detail. The support module 62 resides in the
`typically stationary base unit 46 (FIG. 1) that is mounted in
`the vehicle dashboard or other convenient location. The
`
`support module 62 includes a logic unit 90 which is respon-
`sible for facilitating communication among peripheral
`devices, establishing a master audio clock signal used
`throughout the vehicle computer system, and coordinating
`the entertainment functionality of the computer system. The
`logic unit 90 can be implemented as an FPGA (field pro-
`grammable gate array). It is noted that the logic code for an
`FPGA is developed using a hardware description language,
`such as VHDL (IEEE standard 1076-1993), and can be
`recompiled for an ASIC (application specific integrated
`circuit) architecture. The logical unit 90 can further be
`implemented as a microprocessor, a RISC (reduced instruc-
`tion set computing) processor, or other processing devices.
`The support module 62 has several hardware interfaces. A
`USB interface 92 is driven from the PCI bus 66 and provides
`the interconnection to the various USB peripherals shown in
`FIG. 2. A USB hub may be required as shown if the
`peripherals do not incorporate one and more USB periph-
`erals than supported directly by the support module are
`attached. A VGA controller 94 is provided on the support
`module 62 to drive the display 24 (FIG. 1). The VGA
`controller 94 is also driven from the PCI bus. It is noted that
`
`the USB interface and VGA controller could be incorporated
`into the logic unit 90. An ATAPI-IDE interface (used to drive
`the CD ROM or DVD player), and a PCI interface are
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`implemented as part of the logic unit 90. For supporting
`higher bandwidth video applications such as multiple video
`screens, a P1394 interface could be added to the system and
`driven from the PCI interface or incorporated in logic unit
`90.
`
`The support module 62 also includes an audio signal
`processor 96 to perform the sound processing algorithms
`which may include: sound equalization, digital crossover,
`bass, treble, volume, surround sound, Dolby pro-logicTM,
`AC-3 and MPEG decoding. The audio signal processor 96
`also drives digital to analog converters for a six channel
`audio output (not shown). The audio signal processor 96 is
`preferably implemented as a DSP (digital signal processor),
`such as a Motorola DSP56009. The support module also
`includes an AM/FM tuner module 98, a GPS (global posi-
`tioning system) chipset 100 to provide for satellite naviga-
`tion such that the longitude, latitude, and altitude of the
`vehicle may be readily determined, and one or more audio
`analog to digital converters and digital to analog converters
`(or “CODECS”) 102.
`A fast data memory 110 functions as a high speed data
`communications buffer between the serial peripheral
`devices. The fast data memory is preferably implemented as
`a high speed SRAM (static random access memory) which
`provides high speed buffering and “ping-ponging” of audio
`data or USB data to minimize processor interaction. In the
`preferred implementation, the fast data memory 110 acts as
`a fast data memory buffer which accommodates data
`exchange among many devices. The fast data memory 110
`is described below in more detail with reference to FIG. 6.
`
`With continuing reference to FIG. 3, the faceplate module
`60 resides on the detachable faceplate 48 (FIG. 1). The
`faceplate module 60 is connected to the support module
`through a connector that facilitates easy detachability of the
`faceplate 48 from the main housing 36. The faceplate
`module 60, through the detachable connector, communicates
`bi-directional data to the support module 62 by means of the
`high speed serial interconnect 68. The faceplate module 60
`includes a logic unit 120 which can be implemented as an
`FPGA, ASIC, DSP, or other device. The faceplate module 60
`also includes a keypad 52, a display 54, an IrDAport 56, and
`a CODEC 122. Additionally, the faceplate module contains
`a slot for an optional plug-in RF transceiver 124 such as a
`cellphone, two-way pager, or point-to-point spread spectrum
`transceiver.
`
`the computer module 64 resides in the
`Typically,
`dashboard-mounted base unit 46 and includes a processor in
`the form of a microprocessor 130, such as an Intel® x86-
`type microprocessor. When plugged in, the computer mod-
`ule 64 is connected to the PCI bus 66 to communicate with
`
`the support module 62.
`The microprocessor 130 runs an open platform operating
`system 131, such Windows 95® or Windows NTTM or other
`Windows® derivative operating systems from Microsoft
`Corporation. The operating system 131 is stored in a hard
`disk drive 132 (e.g. typically >200 Mbytes). This hard disk
`drive may be either integrated into the computer module as
`shown or it may be in the form of a PC-Card. The computer
`module 64 supports any variety of applications that the
`vehicle user might desire. These applications can also be
`stored on the hard disk drive 132 or on a removable storage
`medium, such as a CD ROM, cassette, PC-Card Flash
`memory, PC-Card hard disk drive, or floppy diskette.
`Additionally, user applications may be downloaded via the
`optional wireless Internet connection 76. A DRAM memory
`133 and Flash memory (or other non volatile memory) 134
`
`14
`
`
`
`US 6,175,789 B1
`
`7
`are employed in the computer module to support the micro-
`processor 130 in running the operating system and loaded
`applications.
`The computer module 64 has a PC-Card interface 135
`which includes a PC card socket used to support types I, II,
`or III PC cards (e.g., extra memory, bard disk drives,
`modems, RF transceivers, network adapters, or other
`PC-Card peripherals). The computer module 64 also has a
`Smart Card interface 136, which accepts Smart Cards.
`The computer module 64 has a set of one or more drivers
`137 including, for example, a CD ROM driver, a diskette
`driver, a display driver, and the like. The computer module
`64 also has a navigation application 138 that
`includes
`program code for a GPS (global positioning system) receiver
`and program code for mapping functionality (e.g.,
`“Automap” from Microsoft Corporation). Asecurity system
`139 is provided in the computer module 64 to manage
`vehicle security. The security application 114 monitors the
`security sensors 26 (FIG. 1) for any potential threat of theft
`or vandalism. The security system 146 is connected to
`actuators which lock/unlock doors and windows, and to an
`alarm which can be activated upon detection of unwanted
`tampering. An OBD (On Board Diagnostic) interpreter 128
`is provided in the computer module to communicate with the
`OBD system built into the vehicle by the manufacturer. The
`OBD interpreter 116 interprets the status data received and
`provides performance related information from the vehicle’s
`OBD system to the microprocessor 100. Also, commands
`can be provided to the interpreter which allows non-critical
`car systems to be controlled.
`A more detailed explanation of the three modules in the
`vehicle computer system is provided in co-pending U.S.
`patent application Ser. No. 08/564,586 entitled “Vehicle
`Computer System,” which was filed on Nov. 29, 1995 in the
`names of Richard D. Beckert, Mark M. Moeller, and Will-
`iam Wong. This application is assigned to Microsoft Cor-
`poration and is incorporated herein by reference.
`The logic unit 90 within the support module 62 is con-
`figured with its own multi-bit bus structure that is separate
`from the bus of the microprocessor 130 of the computer
`module 64. The logic unit 90 and microprocessor 130 are
`interfaced using a bus, such as PCI bus 66. By configuring
`the logic unit 90 with its own bus, the logic unit 90 is capable
`of better performing its tasks independent of intervention
`from the microprocessor 130. Moreover, the internal bus of
`the logic unit 90 facilitates data communication between the
`audio components and other serial devices while using
`minimal processing resources of the microprocessor 130.
`FIG. 4 shows a preferred implementation of an internal
`bus structure 140 of the logic unit 90 of the support module
`and the interface between the internal bus 140 and external
`devices. The internal multi-bit bus structure 140 includes an
`address bus 142, a data bus 144, and a control bus 146. In
`the illustrated implementation, the data bus 144 is a 32-bit
`bus and the address bus 142 is a sufficiently large to support
`in parallel at least 19 address bits, such as through a 32-bit
`bus. The busses are tri-state busses which are driven by one
`of several sources. An internal bus arbiter 148 determines
`which device is in control of the bus structure 140.
`
`The PCI bus 66 connecting the support module 62 to the
`computer module 64 is connected to the internal bus struc-
`ture 140 via latches 150, 152, and 154, and a PCI bus
`interface 156. The PCI connection has primary control over
`the internal bus structure 140. The USB interface 92 and the
`VGA controller 94 are devices on the PCI bus interconnect,
`or they may be incorporated into the logic unit 90.
`
`8
`Serial devices are connected to the internal bus structure
`
`140 via a serial interface 160. Some of the peripheral devices
`are implemented to write data directly to the fast data
`memory 10 use a direct memory access (DMA) process
`(described below). Such serial devices are referenced by
`number 162. Example of DMA-configured peripheral
`devices include the audio signal processor 94, the faceplate
`module 60 (which is treated as a multifunction peripheral
`when attached to the support module), the AM/FM tuner 98,
`etc. From the perspective of the logic unit,
`these serial
`devices behave with respect to the DMA process as any
`peripheral device. Accordingly, in this context,
`the serial
`devices internal to the support module may be referred to as
`“serial devices,” “serial peripheral devices,” or simply
`“peripheral devices.”
`The data from the serial devices 162 are received at the
`
`interface 160 and transferred to ping/pong DMA
`serial
`circuits 164. The DMA circuits 164 include a serial
`to
`
`10
`
`15
`
`20
`
`parallel converter to convert the data to a parallel format.
`The parallel data is transferred from the ping/pong DMA
`circuits 164 over the bus structure 140 to the fast data
`
`memory 110. An example ping/pong DMA circuits 164 is
`described in more detail below with reference to FIG. 5.
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Other peripheral devices, referenced by number 166, are
`not linked to DMA circuitry because of their low bandwidth
`requirements. An example of this peripheral device is the
`navigation GPS chipset 100. Serial data from a peripheral
`device 166 is received at the serial interface 160 and stored
`
`in a parallel format in an internal register where it may be
`read by the computer module 64.
`The logic unit 90 supports an IDE (Integrated Device
`Eletronics) port 170 for connection to the CD ROM or other
`IDE compatible device, such as a DVD player or IDE hard
`disk drive. The CD ROM is an IDE device with an ATAPI
`
`software interface, and typically has a 16-bit bus. The IDE
`port 170 is accessible from the bus structure 140 through two
`16-bit bi-directional buffers 172 and 174 to translate the
`
`16-bit CD-ROM data to the proper word location in the
`32-bit internal data bus 144. The microprocessor in the
`computer module communicates to the CD ROM through a
`sequence of ATAPI commands written to registers decoded
`by the logic unit. The register decoder 168 decodes and
`transfers read/write timing signals to IDE port 170 for output
`to the IDE compatible device.
`Memory locations within the fast data memory 110, the
`I/O ports to the peripheral devices 162, 166, and the IDE
`port 170 can be mapped into the address space presented by
`the logic unit 90. Data can be sent to the peripheral devices
`or memory 110 over the internal address/data bus 140 by
`using addresses which have been uniquely assigned to each
`peripheral device or memory block.
`In a preferred
`implementation, the memory 110 is a 32-bits wide SRAM
`with four byte enable lines to allow for combinations of
`byte, word, or double word access. The fast data memory
`address and data lines are driven by the logic unit 90 from
`the internal address/data bus structure 140 and the fast data
`memory will be enabled when the address is in the range
`mapped to the multiport memory 110. The address/data bus
`structure 140 will also be driven for transfers between the
`
`host processor and peripheral registers such as the computer
`module reading the GPS receive registers.
`The internal address/data bus 140 splits its time between
`requests from the PCI bus 66 and DMA requests for access-
`ing the memory 110. The bus arbiter 148 controls the bus
`ownership and has selection logic to transition between a
`PCI bus request and a DMA request. The bus arbiter circuit
`
`15
`
`
`
`US 6,175,789 B1
`
`9
`148 generally tries to grant one-half of the bus bandwidth to
`the PCI bus 66 and one-half to the DMA processes. When
`the arbiter decodes an active request, it initiates a bus cycle
`state machine and the active request grants the bus to either
`the PCI bus or to one of the internal DMA circuits.
`
`As noted above, signals received from the PCI bus 66
`have priority on the address/data bus 140. The PCI bus
`signals are input into the logic unit 90 as 32-bit multiplexed
`signals consisting of address/data bits plus the PCI control/
`timing signals. When a PCI bus cycle begi